为什么我的代码老是报该行已存在另一张表中
//开始答题DataSet datti2 = new DataSet();//声明一个数据集
//此处省略了获得表0的过程
foreach (ListViewItem one in listView1.Items)
{
//根据选中的数据文件,加载数据
//datti2.ReadXmlSchema(one.SubItems[1].Text);
datti2.ReadXml(one.SubItems[1].Text);
datti2.Tables.Add("临时表");
//datti2.Tables[1].Clone();
//datti2.Tables[1].Clear();
//利用循环,从选中的题库中抽取题目
for (int i = 0; i < Convert.ToInt32(one.SubItems[2].Text); i++)
{
int a = rnd.Next(0, datti2.Tables[0].Rows.Count);//产生一个随机数,随机数的范围是:0-提取选中题库表中的行数
//向临时数据集的表中添加从选中题库的题目(数量是自己刚开是从NumericUpDown选择的数量)
//创建使用指定值的行添加到数据行集合中
//datti2.Tables[1].Rows.Add(datti2.Tables[0].Rows[a]);
DataRow row = datti2.Tables[1].NewRow();
row = datti2.Tables[0].Rows[a];
datti2.Tables[1].Rows.Add(row);//这里报错:该行已存在另一张表中
}
dataGridView1.DataSource = datti2.Tables[1];//将符合选择条件的临时表的信息显示到DataGridView中
datti2.Tables[1].Clear();//清空临时表中的数据
}
--------------------编程问答-------------------- DataRow row = datti2.Tables[1].NewRow();
row = datti2.Tables[0].Rows[a];//这里有问题,应该是把datti2.Tables[0].Rows[a]里的值付给row,而不是把datti2.Tables[0].Rows[a]付给row
datti2.Tables[1].Rows.Add(row);//这里报错:该行已存在另一张表
补充:.NET技术 , .NET Framework