当前位置: 代码迷 >> ASP.NET >> SqlDataReader 为什么返回不了小弟我修改后的数据?
  详细解决方案

SqlDataReader 为什么返回不了小弟我修改后的数据?

热度:2127   发布时间:2013-02-25 00:00:00.0
SqlDataReader 为什么返回不了我修改后的数据???
for (int i = 0; i < GridView1.Rows.Count; i++)
  {
  if (check.Checked == true)
  {
  SqlConnection sms_conn = new SqlConnection(study.sqlconn);
  string SqlStr1 = "SELECT 课程.学科学分,学生.所得学分 from 课程,学生,学生选课表 where 课程.课程编号=学生选课表.课程编号 AND 学生.学号=学生选课表.学号 AND 课程.教师编号='" + study.number + "'";
  if (sms_conn.State.ToString() == "Closed")
  {//连接如果关闭,打开
  sms_conn.Open();
  }
  SqlCommand cmd = new SqlCommand(SqlStr1, sms_conn); //创建操作数据库对象
  SqlDataReader sdr = cmd.ExecuteReader(); //执行查询,将结果放到DataReader对象
  if (sdr.Read()) //如果查询到课程信息,显示
  {

  float xuekexuefen=float.Parse(sdr["学科学分"].ToString());
  float suodexuefen =float.Parse(sdr["所得学分"].ToString());
  float zongshu = xuekexuefen + suodexuefen;
  string sql1 = "update 学生 set 所得学分 = '" + zongshu + "' where 学号 = '" + ms + "'";
  SqlCommand ud = new SqlCommand(sql1, sms_conn);
   
  sms_conn.Close();
  }
   
  }
  }
我想修改数据库的数据,用了上面的方法,但是就是修改不了,数据还是保持原样,请教各位大虾是什么原因啊???

------解决方案--------------------------------------------------------
楼主第二个command对象ud 没有执行ud.ExecuteNonQuery()这个方法,这样可以执行UPDATE语句
------解决方案--------------------------------------------------------
C# code
//LZ应多看些书,稍作修改,应该可以使用if (sdr.Read()) //如果查询到课程信息,显示 {   float xuekexuefen=float.Parse(sdr["学科学分"].ToString());   float suodexuefen =float.Parse(sdr["所得学分"].ToString());   float zongshu = xuekexuefen + suodexuefen;      sdr.Close();  string sql1 = "update 学生 set 所得学分 =  '" + zongshu + "' where 学号 = '" + ms + "'";   int rows = cmd.ExecuteNonquery();              sms_conn.Close(); }