2012-01-24 59 views
4

我有一個數據表,裏面有多行。我還有一行,我想檢查這行是否是數據表中現有行的重複。所以,我想這樣的:比較兩個數據行

​​

在這裏,我也dataTable可以爲空/空首次。

但它給錯誤爲:

表沒有主鍵。

任何人都可以幫助我。如果需要額外的代碼,只需評論。

+0

是否表使用從數據庫中讀取有一個[主鍵](http://msdn.microsoft.com/en- us/library/aa933092(v = sql.80).aspx)(在數據庫本身中)?它似乎不...... –

+0

是的它確實在數據庫中有一個主鍵肯定 – Sandy

+0

你得到的屬性'dataTable.PrimaryKey'? –

回答

1

你不能在你的DataTable對象上添加PK嗎?

我覺得代碼將是這樣的:

dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["Id"] }; 
+0

它產生與Table沒有主鍵相同的錯誤。並記得第一次表是空的 – Sandy

+0

見編輯帖子......... – Sandy

0
​​

我假設你dt變量應該是你的dataTable變量,如果你得到一個錯誤,告訴你,你的表沒有按沒有主鍵可能是因爲您使用了錯誤的變量,並且確實沒有與您嘗試使用的變量關聯的主鍵或表。

,所以我假定代碼應該是這樣的,而不是

DataTable dataTable = GetTable(); 
if (dataTable.Rows.Count > 1) 
{ 
    for (int i = 0; i < dataTable.Rows.Count; i++) 
    { 
     var dataRow = dataTable.Rows[i]; 

     if (dataTable.Rows.Contains(dataRow) && dataTable.Rows.Count != 0) // Giving error 
      continue; 
     dataTable.ImportRow(dataRow); 
     return dataRow; 
    } 
}