DataColumn的AutoIncrement总是返回False

时间:2013-10-14 19:44:13

标签: vb.net oledb datacolumn

我有兴趣检查列是否具有autoincrement / allowdbnull属性。

下面有这个代码,虽然我已经有一个具有autoincrement / allowdbnull属性的列,但总是假的。

Dim dt As New DataTable()
Dim con As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" &             Application.StartupPath & "\test.mdb"
Dim sql As String = "SELECT * from teachers"
Dim i As Integer



Dim dataAdapter As New OleDb.OleDbDataAdapter(sql, con)
dataAdapter.Fill(dt)
dataAdapter.Dispose()



For Each column As DataColumn In dt.Columns

TextBox1.Text = TextBox1.Text & column.ColumnName & "      " & column.AutoIncrement & "        " & column.AllowDBNull & vbCrLf

Next

感谢。

2 个答案:

答案 0 :(得分:7)

要使代码正常工作,您需要添加(在调用Fill方法之前)

  dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey

这将强制适配器检索有关主键和自动编号字段的信息

MSDN MissingSchemaAction enumeration

答案 1 :(得分:0)

ds = new dataset()

dataAdapter.Fill(ds,0,1,"Teachers")

dataAdapter.FillSchema(ds, SchemaType.Source, "Teachers");

dt = ds.tables(0)