【问题标题】:How to error free"ColumnName Already Belongs to datatable "?如何无错误“列名已经属于数据表”?
【发布时间】:2014-10-04 11:07:14
【问题描述】:

我在c#中写了下面的代码,它总是出错,因为列已经属于这个数据表。我不知道如何无错误。下面的代码被使用了。

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);
}

我需要如何避免“列已属于此数据表”的错误

提前致谢

【问题讨论】:

  • 请帮帮我,我卡在这里
  • 其余代码在哪里?该错误表明数据表已经设置了列。你是不是在别的地方设置了名字?你能删除所有的 tabl.columns.add 代码,然后它会工作吗?另外,不知道你为什么这样写。你有一个数据表,你创建了一个行,但你从来没有将该行添加到数据表中。
  • @sjramsay :我已经在dataGrid中添加了,并且每次发送点击时,它都会显示错误,如上面引用的那样
  • 您能在定义表格数据表的位置显示代码吗?每次添加新行时,您都会不断添加列,而您不需要这样做。一旦在 send_click 事件之外定义了表和列,您就可以添加行。如果您在数据网格中添加了列,则此处不需要这些列。

标签: c# wpf datatable wpfdatagrid


【解决方案1】:

您不需要为每个新行添加列 - 一旦定义了列,它们就会包含在每个新行中。只需删除这些行:

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

【讨论】:

  • :如果我删除这个,我只能点击一次发送按钮,如果我再次点击意味着它显示“列名已经属于dataTable”
  • 我真的受够了,请帮帮我先生
  • 在代码中的某处创建 DataTable 表。将 3 行移到那里,以便它们只执行一次。
【解决方案2】:

此错误表示您没有向数据表声明新行,但想将该行添加到数据表。 每次,在向数据表添加一行之前插入代码:DataRow row = tabl.NewRow(); 还有一件事,您必须只声明一次表列(在向其中添加任何行之前)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多