具有现有架构的DataTable未导入同一架构的DataRow

本文关键字:一架 DataRow DataTable 导入 | 更新日期: 2023-09-27 18:12:20

问候!将创建的行导入数据集中的DataTable时遇到问题。我从一个空的SQL数据库中预填充"newDataSet",但它确实包含已经设置了架构的表。我已经验证了"newDataSet"中的DataTables正在将架构导入到它们中。

一切看起来都很好,因为没有错误日志,但从未添加过数据行。我的Console.WriteLine报告返回的计数相同。

感谢您花时间回顾这篇文章。我很感激你。

初始设置:

var DataSet newDataSet = new DataSet("foo"); // A SQL Adapater was used to fill this from a pre existing Database.
var checkDataSet = new DataSet();
var checkDataTable = new DataTable();

正在克隆数据集和数据表。

checkDataSet = newDataSet.Clone();
checkDataTable = checkDataSet.Tables["moreFoo"].Clone();

创建数据行:

var newDataRow = checkDataTable.NewRow();

填写数据行中的列:

newDataRow[0] = obj1;
newDataRow[1] = obj2;
newDataRow[2] = obj3;

将DataRow导入"newDataSet"DataTable:

Console.WriteLine(newDataSet.Tables["moreFoo"].Rows.Count.ToString()); 
newDataSet.Tables["moreFoo"].ImportRow(newDataRow);
Console.WritelLine(newDataSet.Tables["moreFoo"].Rows.Count.ToString());

具有现有架构的DataTable未导入同一架构的DataRow

答案是:

newDataSet.Tables["moreFoo"].ImportRow(newDataRow);

应该是:

newDataSet.Tables["moreFoo"].Rows.Add(newDataRow.ItemArray);