我的问题是我无法使用另一个Datatable的值填充DataTable。 代码如下:
foreach (DataRow row1 in ds.Tables["tests"].Rows)
{
//Use value stored in DataTable "tests" to generate
//new DataTable called "temp" and fill it with values
foreach (DataRow row2 in ds.Tables["temp"].Rows)
{
//use values in "temp"-table to fill fields in "tests"-table
-> if (specific condition in Datatable "tests" is met)
{
example1: row1.ItemArray[10] = Convert.ToInt64(row2.ItemArray[0]);
example2: ds.Tables["tests"].Rows[row1.Table.Rows.IndexOf(row1)].ItemArray[10] = Convert.ToInt64(row2.ItemArray[0]);
}
else if (another specific condition in Datatable "tests" is met)
{
//Different fields will be filled
}
}
}
尝试调试程序时,在if语句的开头使用停止点,一切都会解析,直到程序跳转到if语句的执行块。
跳过执行块中的每一行
这是我得到的读出消息(松散翻译):
NonUserCode "System.Data.DataSet.Tables.get" is being skipped.
NonUserCode "System.Data.DataRow.ItemArray.get" is being skipped.
任何帮助将不胜感激。谢谢!
答案 0 :(得分:3)
无需使用ItemArray。
if (specific condition in Datatable "tests" is met)
{
row1[10] = Convert.ToInt64(row2[0]); //try this only.
}
else if (another specific condition in Datatable "tests" is met)
{
//Different fields will be filled
}
当您访问ItemArray时,它返回一个本地数组。并通过为此本地数组赋值,而不对数据表进行任何更改。
答案 1 :(得分:-1)
尝试审核主题:DataRow Copy