这是前面的定义
void ExecuteSQL(string Query)
{
OleDbCommand Cmd;
dbConnection();
Cmd= new OleDbCommand(Query,conn);
Cmd.ExecuteNonQuery();
}
以下为执行修改学生信息,提示修改成功,但列表内信息还是原来的
protected void Button5_Click(object sender, EventArgs e)//修改学生信息
{
dbConnection();
string strSQL = "";
for (int i = 0; i < Datagrid1.Items.Count; i++)
{
CheckBox ck = (CheckBox)Datagrid1.Items[i].Cells[0].FindControl("ddl");
System.Web.UI.WebControls.Label t = (System.Web.UI.WebControls.Label)Datagrid1.Items[i].Cells[4].FindControl("Label1");
if (ck.Checked == true)
{
string SelectSQL = "SELECT * FROM student where sno='" + sno.Text.Trim() + "'";
OleDbCommand Cmd;
OleDbDataReader myReader;
Cmd = new OleDbCommand(SelectSQL, conn);
myReader = Cmd.ExecuteReader();
if (sno.Text.Trim() != "" && (!myReader.Read() || sno.Text.Trim().Equals(Datagrid1.Items[i].Cells[1].Text.Trim())))
{
strSQL = "update student set sno='" + sno.Text.Trim() + "',name='" + name.Text.Trim() + "',sclass='" + sclass.Text.Trim() + "',dno='" + dno.Text.Trim()+"';";
// ExecuteSQL(strSQL);
alert("已经修改成功!!!", this);
}
else
{
alert("你要修改的学生学号已存在或者为空,请重新输入!!!!", this);
}
myReader.Close();
}
}
string strSQL2 = "SELECT * FROM student ";
DataSet d = tem(strSQL2);
Datagrid1.DataSource = d;
Datagrid1.DataBind();
}
这句执行的,不是被你注释了吗,当然更新不成功了!追问
上面程序我复制错了,实际上我没注释掉。结果显示错误
语句已终止。
违反了 PRIMARY KEY 约束 'PK_student'。不能在对象 'student' 中插入重复键。
strSQL = "update student set sno='" + sno.Text.Trim() + "',name='" + name.Text.Trim() + "',sclass='" + sclass.Text.Trim() + "',dno='" + dno.Text.Trim()+"';";
这个SQL 语句怎么没有where条件,你要更新哪一条
被你注释了啊,怎么可能加入数据库呢追问
上面程序我复制错了,实际上我没注释掉。结果显示错误
语句已终止。
违反了 PRIMARY KEY 约束 'PK_student'。不能在对象 'student' 中插入重复键。