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();
}