转载自 :http://kb.cnblogs.com/a/672802/
我们经常需要向DataTable中添加一行数据,大多数的情况下都是把一些从UI的控件和程序的变量中收集的数据添加到DataTable中。如以下的语句把供应商代码和名称添加到DataTable中:
DataTable dtProvider = new DataTable(); DataRow drRow = dtProvider.NewRow(); drRow[0] = txtProviderCode.Text.Trim(); drRow[1] = txtProviderName.Text.Trim(); dtProvider.Rows.Add(drRow); |
大多数的情况下这几行语句是完全可以满足要求的。但是如果想把另一个同样结构的DataTable的某一行添加到这个dtProvider中,就不能简单的添加了。否则会提示一个错误“This row belongs to another table.”。这个时候我们必须定义另一个DataRow,把源DataRow的数据赋到目的DataRow中,再Add进DataTable中就可以了。如下所示:
DataTable dtProvider = new DataTable(); DataRow drTarget = dtProvider.NewRow(); drTarget.ItemArry = drSource.ItemArry; // 注意:这里的drSource是另一个相同结构的DataTable中的一行。 dtProvider.Rows.Add(drTarget); |
我们经常需要向DataTable中添加一行数据,大多数的情况下都是把一些从UI的控件和程序的变量中收集的数据添加到DataTable中。如以下的语句把供应商代码和名称添加到DataTable中:
DataTable dtProvider = new DataTable(); DataRow drRow = dtProvider.NewRow(); drRow[0] = txtProviderCode.Text.Trim(); drRow[1] = txtProviderName.Text.Trim(); dtProvider.Rows.Add(drRow); |
大多数的情况下这几行语句是完全可以满足要求的。但是如果想把另一个同样结构的DataTable的某一行添加到这个dtProvider中,就不能简单的添加了。否则会提示一个错误“This row belongs to another table.”。这个时候我们必须定义另一个DataRow,把源DataRow的数据赋到目的DataRow中,再Add进DataTable中就可以了。如下所示:
DataTable dtProvider = new DataTable(); DataRow drTarget = dtProvider.NewRow(); drTarget.ItemArry = drSource.ItemArry; // 注意:这里的drSource是另一个相同结构的DataTable中的一行。 dtProvider.Rows.Add(drTarget); |
---------------
另一种方法
//将datarow放入datatable的方法
DataSet LDT_MonSum = new DataSet();
LDT_MonSum.Merge(LDT_Body.Select("vouaccp='" + LDT_Body.Rows[i]["vouaccp"].ToString() + "'", ""));