2015-12-22 5 views
0

Я пытаюсь использовать Ряды найти на колонке набора данных, но он возвращается говоря: «Таблица не имеет первичный ключ»В.Б Таблица не может найти первичный ключ при использовании найти

Он есть первичный ключ и KeyColumns показать, что первичный ключ существует.

Почему это не работает.

Dim dr As DataRow 
    Dim cid As String 
    Dim table As New DataTable 
    Dim ds as new DataSet 

    table.Columns.Add("cid", GetType(String)) 
    table.Columns.Add("filename", GetType(String)) 
    table.PrimaryKey = New DataColumn() { table.Columns("cid")} 

    table.AcceptChanges() 
    ds.Tables.Add(table) 

    cmd = dbconn.CreateCommand() 
    cmd.CommandText = "Select cid, filename from filetable" 
    Dim myreader As DbDataReader = cmd.ExecuteReader() 
    ds.Load(myreader, LoadOption.OverwriteChanges, "table") 
    myreader.close 

    ' check to see if primary key exists - it does. 
    Dim keyColumns As DataColumn() 
    keyColumns = table.PrimaryKey 

    dr = ds.Tables("table").Rows.Find(“8”) 
+0

Откуда берутся «печатные карточки»? Это то же самое, что 'ds.Tables (" printletters ")'? Какова ценность 'ds.Tables (« printletters »). PrimaryKey'? – SSS

+0

Это опечатка, исправлена. –

+0

Я предполагаю, что тело знает ответ, поэтому может попытаться опубликовать его на другом форуме. –

ответ

0

Установить основной ключ после загрузки из базы данных. Я не думаю, что dataadapters устанавливают основной ключ.

Смежные вопросы