好的,我有这个:
Dim sql As String = "SELECT * FROM Articles"
dAdapter = New OleDbDataAdapter(sql, connection)
dSet = New DataSet("tempDatatable")
With connection
.Open()
dAdapter.Fill(dSet, "Articles_table")
.Close()
End With
With DataGridView1
.DataSource = dSet
.DataMember = "Articles_table"
End With
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何可能的方法将第一列定义为主键.我环顾四周,但每个人都在使用手动数据表来填充数据网格.由于我使用的是数据库,因此我不知道如何设置主键.我需要一些帮助.
您可以使用以下内容向数据表添加主键:
var table = dSet.Tables["Articles_table"];
table.PrimaryKey = new DataColumn[] { table.Columns[0] };
Run Code Online (Sandbox Code Playgroud)
对不起,刚刚意识到问题是用vb.net标记的,而不是c#.VB.net将是:
Dim table = dSet.Tables("Articles_table")
table.PrimaryKey = New DataColumn() {table.Columns(0)}
Run Code Online (Sandbox Code Playgroud)
你必须将DataAdapter's 设置MissingSchemaAction为AddWithKey:
var table = new DataTable();
using(var con = new SqlConnection(connectionString))
using (var da = new SqlDataAdapter("SELECT * FROM Articles", con))
{
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
da.Fill(table);
}
Run Code Online (Sandbox Code Playgroud)
编辑:VB.NET:
Dim table = New DataTable()
Using con = New SqlConnection(connectionString)
Using da = New SqlDataAdapter("SELECT * FROM Articles", con)
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
da.Fill(table)
End Using
End Using
Run Code Online (Sandbox Code Playgroud)
现在,将完成模式的必要列和主键信息自动添加到DataTable.
| 归档时间: |
|
| 查看次数: |
6780 次 |
| 最近记录: |