Мне интересно узнать, имеет ли столбец свойство автоинкремента/allowdbnull.AutoIncrement DataColumn возвращает False Всегда
Имея этот код ниже, всегда имеет значение false, хотя у меня уже есть один столбец с свойством автоинкремента/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
спасибо.
Nice. Следует отметить, что это замедлит работу вашей базы данных, поэтому это не должно делаться на регулярной основе. Если вам это нужно на регулярной основе, сделайте это один раз в отдельном процессе, запросив записи «где 1 = 2», а затем просто используйте его повсюду, а не вызывайте его с каждой командой выбора. – Steve
@Steve (мне нравится разговаривать сам с собой - :)), ваше наблюдение правильное. Добавление информации о схеме замедляет извлечение данных, поэтому не стоит делать это на обычной базе. Однако это MDB с локальным доступом, поэтому удар производительности должен быть не очень плохим. Для проверки. – Steve
@Steve, большое спасибо :) Есть ли способ получить «EXACT» dataTpe столбца? Column.DataType.ToString? , когда я говорю «EXACT», я хочу получить конкретный тип поля/столбца, как указано здесь, на этом сайте: [ссылка] (http://www.w3schools.com/ado/ado_datatypes.asp) потому что для разных типов, таких как Memo & Text -> я получаю System.String для обоих. спасибо – eawedat