具有现有Schema的DataTable不导入相同Schema的DataRow

时间:2014-07-11 00:53:44

标签: c# datatable dataset datarow

电贺!我在将我创建的行导入到驻留在DataSet中的DataTable时遇到问题。我从一个空的SQL数据库预先填充“newDataSet”,但它确实包含已经设置了Schema的表。我已经验证了“newDataSet”中的DataTables正在将Schema导入到它们中。

由于没有错误日志,所以看起来都很正确,但是没有添加任何数据行。我的Console.WriteLine报告都返回相同的Count。

感谢您抽出宝贵时间对此进行审核。我很感激你。

初始设置:

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

克隆DataSet和DataTable。

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

创建DataRow:

var newDataRow = checkDataTable.NewRow();

填写DataRow中的列:

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

1 个答案:

答案 0 :(得分:0)

答案是:

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

应该是:

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