问题描述
//开始答题DataSetdatti2=newDataSet();//声明一个数据集//此处省略了获得表0的过程foreach(ListViewItemoneinlistView1.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(inti=0;i<Convert.ToInt32(one.SubItems[2].Text);i++){inta=rnd.Next(0,datti2.Tables[0].Rows.Count);//产生一个随机数,随机数的范围是:0-提取选中题库表中的行数//向临时数据集的表中添加从选中题库的题目(数量是自己刚开是从NumericUpDown选择的数量)//创建使用指定值的行添加到数据行集合中//datti2.Tables[1].Rows.Add(datti2.Tables[0].Rows[a]);DataRowrow=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();//清空临时表中的数据}
解决方案
解决方案二:
DataRowrow=datti2.Tables[1].NewRow();row=datti2.Tables[0].Rows[a];//这里有问题,应该是把datti2.Tables[0].Rows[a]里的值付给row,而不是把datti2.Tables[0].Rows[a]付给rowdatti2.Tables[1].Rows.Add(row);//这里报错:该行已存在另一张表