2014-10-04 37 views
1

Hai am在c#中編寫下面的代碼,它總是錯誤的,因爲列已經屬於這個datatable.i dnt knw如何錯誤free.the下面的代碼被使用。如何錯誤「ColumnName已經屬於數據表」?

private void Send_Click(object sender, RoutedEventArgs e) 
{ 
System.Data.DataRowView selectedFile = (System.Data.DataRowView)dataGrid1.SelectedItem; 
string studid = Convert.ToString(selectedFile.Row.ItemArray[3]); 
DataRow row = tabl.NewRow(); 
tabl.Columns.Add("StudyUID", typeof(string)); 
tabl.Columns.Add("Patient ID"); 
tabl.Columns.Add("Patient Name"); 
row["StudyUID"] = selectedFile.Row.ItemArray[3]; 
row["Patient ID"] = selectedFile.Row.ItemArray[1]; 
row["Patient Name"] = selectedFile.Row.ItemArray[2]; 
sendstudy(this.SUID, row); 
} 

我需要如何避免錯誤「一欄已經屬於這個數據表」

在此先感謝

+0

請幫助我,我被困在這裏 – RajnathKumar 2014-10-04 11:24:18

+0

哪裏是你的代碼的其餘部分?該錯誤指出該數據表已具有設置的列。你把名字放在別的地方了嗎?你可以刪除所有的tabl.columns.add代碼,它會工作嗎。另外,不知道爲什麼你寫這樣的。你有一個數據表,你創建一個行,但是你永遠不會把行添加到數據表。 – sjramsay 2014-10-04 13:43:22

+0

@sjramsay:我已經補充說,在DataGrid和也每次發送的點擊,它顯示錯誤如上 – RajnathKumar 2014-10-06 05:37:51

回答

1

你並不需要增加一列,每新行 - 一旦列定義,他們將被包含在每一個新的行。只需刪除這些行:

tabl.Columns.Add("StudyUID", typeof(string)); 
tabl.Columns.Add("Patient ID"); 
tabl.Columns.Add("Patient Name"); 
+0

:如果我刪除此,一次只有我可以點擊發送按鈕,如果我再次點擊意味着它顯示爲「列名已經屬於dataTable的」 – RajnathKumar 2014-10-06 05:39:38

+0

感到很fedup這裏,plz幫助我先生 – RajnathKumar 2014-10-06 05:40:12

+0

某處在你的代碼中創建數據表TABL。將3條線移動到那裏,以便它們只執行一次。 – 2014-10-06 14:46:38

0

此錯誤表示您不聲明數據表的新行,但希望將該行添加到數據表。每次添加一行到數據表插入代碼:DataRow row = tabl.NewRow(); 還有一件事,你必須聲明一次你的表列(用於添加任何行)。