2013-06-24 2 views
1

Ребята, у меня есть таблица в базе данных, у которой нет основной клавиши. Я думаю, причина в том, что это просто таблица с большим количеством внешних ключей. Я действительно не знаю, что мой sql довольно беден. Таким образом, таблица не была создана мной, но у меня возникли проблемы при создании моего datatable. Для обновления моего набора данных для таблицы требуется первичный ключ. Поскольку все столбцы arent уникальны, мне пришлось бы создавать составные клавиши. Любой знает как. Вот код для создания первичного ключа в первом.DataTable Vb.net Создание композитных клавиш

'after using adapter and all the connection process to fill the dataset 

     Dim tableProduct As DataTable = productDataSet.Tables(0) 


    tableProduct.PrimaryKey = New DataColumn() {tableProduct.Columns(0)} 

И вот я пытаюсь создать составные ключи

  Dim tableProduct As DataTable = productDataSet.Tables(0) 


    tableProduct.PrimaryKey = New DataColumn() {tableProduct.Columns(0)} 
     tableProduct.PrimaryKey = New DataColumn() {tableProduct.Columns(1)} 

Я недавно начал vb.net ранее я работал на Java и PHP, Jquery и тому подобное. так что я не так переживаю с .Net Framework. Если я задал вопрос неправильно, скажите мне, чтобы я мог редактировать Спасибо.

ответ

0

Если я правильно понял вашу проблему, вам нужно определить первичный ключ вашей таблицы, используя две (или более) datacolumns , В приведенном выше коде вы сначала устанавливаете PrimaryKey с одним столбцом, затем вы изменяете этот первичный ключ и используете другой столбец. Но вы всегда получаете PrimaryKey только с одним столбцом.

Try с этим

tableProduct.PrimaryKey = New DataColumn() _ 
           { 
            tableProduct.Columns(0), 
            tableProduct.Columns(1) 
           } 

См How to: Initialize an Array Variable in VB.NET

+0

IS есть в любом случае, чтобы проверить, какие столбцы являются primarykeys и сколько там? Например, msgbox (keycount или что-то еще) –

+0

Конечно, PrimaryKey - это массив, который также можно прочитать. 'tableProduct.PrimaryKey.Length' и' для каждого dc в таблицеProduct.PrimaryKey' См. [Пример MSDN VB] (http://msdn.microsoft.com/en-us/library/system.data.datatable.primarykey.aspx? cs-save-lang = 1 & cs-lang = vb # code-snippet-1) – Steve

+0

Theres все еще что-то не так, но теперь есть несколько ключей, я думаю, что это просто база данных спасибо !!!!! –