各位大侠帮看看这段程序!问题出在哪里?

greenhill 2003-08-24 11:47:41
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。”我在之前的程序中也是用这种方法添加新行的,不知道这里问题出在哪里!请帮看看!如果有其他的好方法也请列出来!谢谢!
...全文
44 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wd_318 2003-08-24
  • 打赏
  • 举报
回复
需要
SqlCommandBuilder thatBuilder=new SqlCommandBuilder(cjAdapter);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧