在查找到数据后,我想在dataGridView中直接修改分数字段,单击保存按钮后,把dataGridView中修改的分数字段更新到数据库。
并且其他字段不需要更新,怎么写代码?(或者让用户不能修改除分数以外的字段)谢谢^_^
我使用如下代码获取数据(断开式操纵数据库和使用存储过程):
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=DB_SMS;Integrated Security=True");
DataSet ds = new DataSet();
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //设置命令类型为存储过程
cmd.Parameters.Add("@S_S_Class", SqlDbType.NChar).Value = cboSearchClass.Text; //班级直接到Student表中查找,字段为班级名称的字符串
cmd.Parameters.Add("@S_S_Course", SqlDbType.NChar).Value = Convert.ToString(cboSearchCourse.SelectedValue); //课程通过CourseID去GradeInput表中查找
cmd.CommandText = "S_GradeInput_Search_B"; //存储过程名称
SqlDataAdapter dp = new SqlDataAdapter();
dp.SelectCommand = cmd;
dp.Fill(ds, "Student");
this.dataGridView1.DataSource = ds.Tables[0];
并且其他字段不需要更新,怎么写代码?(或者让用户不能修改除分数以外的字段)谢谢^_^
我使用如下代码获取数据(断开式操纵数据库和使用存储过程):
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=DB_SMS;Integrated Security=True");
DataSet ds = new DataSet();
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //设置命令类型为存储过程
cmd.Parameters.Add("@S_S_Class", SqlDbType.NChar).Value = cboSearchClass.Text; //班级直接到Student表中查找,字段为班级名称的字符串
cmd.Parameters.Add("@S_S_Course", SqlDbType.NChar).Value = Convert.ToString(cboSearchCourse.SelectedValue); //课程通过CourseID去GradeInput表中查找
cmd.CommandText = "S_GradeInput_Search_B"; //存储过程名称
SqlDataAdapter dp = new SqlDataAdapter();
dp.SelectCommand = cmd;
dp.Fill(ds, "Student");
this.dataGridView1.DataSource = ds.Tables[0];
设置其它字段的可否更改的属性。readonly=true.
然后用SQLDATAADEPTER的update()方法更新表到数据库就可以了 。
代码如下:
三个变量都是字符串类型
private void saveGrade()
{
object objCellValue1 = this.dataGridView1.Rows[0].Cells[0].Value.ToString().Trim();
object objCellValue2 = this.dataGridView1.Rows[0].Cells[3].Value.ToString().Trim();
object objCellValue3 = this.dataGridView1.Rows[0].Cells[2].Value.ToString().Trim();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{ tempID = Convert.ToString(objCellValue1);
tempCourseName = Convert.ToString(objCellValue2);
tempGrade = Convert.ToString(objCellValue3); DataSet ds = new DataSet();
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //设置命令类型为存储过程
cmd.Parameters.Add("@S_G_ID", SqlDbType.NChar).Value = tempID;
cmd.Parameters.Add("@S_G_CourseName", SqlDbType.NChar).Value = tempCourseName;
cmd.Parameters.Add("@S_G_Grade", SqlDbType.NChar).Value = tempGrade;
cmd.CommandText = "S_GradeInput_Grade_U"; //存储过程名称
SqlDataAdapter dp = new SqlDataAdapter();
dp.SelectCommand = cmd;
dp.Fill(ds, "S_GradeInput_Grade_U");
}
}