各位大侠帮看看这段程序!问题出在哪里?
string sqlSelect="SELECT * FROM 成绩";
SqlConnection thisConnection=new SqlConnection(@"Data Source=SERVER;User ID=sa;Password=;Initial Catalog=dx");
thisConnection.Open();
SqlDataAdapter thisAdapter=new SqlDataAdapter(sqlSelect,thisConnection);
SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter);
DataSet thisDataSet=new DataSet();
SqlDataAdapter cjAdapter=new SqlDataAdapter("SELECT * FROM 成绩",thisConnection);
SqlDataAdapter xsAdapter=new SqlDataAdapter("SELECT 学号,姓名 FROM 学生 WHERE 年级="+"'"+toNew5+"'"+"AND 班级="+"'"+toNew6+"'",thisConnection);
cjAdapter.Fill(thisDataSet,"成绩");
xsAdapter.Fill(thisDataSet,"学生");
DataRelation cjxs=thisDataSet.Relations.Add("xscj",thisDataSet.Tables["学生"].Columns["学号"],thisDataSet.Tables["成绩"].Columns["学号"]);
foreach(DataRow xs in thisDataSet.Tables["学生"].Rows)
{
DataRow cjRow=thisDataSet.Tables["成绩"].NewRow();
cjRow["年级"]=toNew5;
cjRow["班级"]=toNew6;
cjRow["学号"]=xs["学号"].ToString().Trim();
cjRow["姓名"]=xs["姓名"].ToString().Trim();
cjRow["科目"]=kemu1;
cjRow["类型"]=leixing;
cjRow["日期"]=dateTimePicker2.Value.Date;
cjRow["分数"]=0;
thisDataSet.Tables["成绩"].Rows.Add(cjRow);
cjAdapter.Update(thisDataSet,"成绩");
}
thisConnection.Close();
这段程序我是想把“学生”表中的“学号”,“姓名”两个字段和其他的一些变量一起付值给“成绩”表中的每个字段,但是在执行cjAdapter.Update(thisDataSet,"成绩");这一句的时候说:“当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。”我在之前的程序中也是用这种方法添加新行的,不知道这里问题出在哪里!请帮看看!如果有其他的好方法也请列出来!谢谢!