我有兴趣检查列是否具有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
感谢。
答案 0 :(得分:7)
要使代码正常工作,您需要添加(在调用Fill
方法之前)
dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
这将强制适配器检索有关主键和自动编号字段的信息
答案 1 :(得分:0)
ds = new dataset()
dataAdapter.Fill(ds,0,1,"Teachers")
dataAdapter.FillSchema(ds, SchemaType.Source, "Teachers");
dt = ds.tables(0)