2

我有兴趣检查列是否具有 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

谢谢。

4

2 回答 2

7

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

  dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey

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

MSDN MissingSchemaAction 枚举

于 2013-10-14T19:53:10.790 回答
0
ds = new dataset()

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

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

dt = ds.tables(0)
于 2014-02-13T16:09:19.307 回答