执行修改操作,数据库中数据没改变,高手指教(用VS2005和sqlserver做的学生宿舍管理系统)

这是前面的定义
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();

}

// ExecuteSQL(strSQL);
这句执行的,不是被你注释了吗,当然更新不成功了!追问

上面程序我复制错了,实际上我没注释掉。结果显示错误
语句已终止。
违反了 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条件,你要更新哪一条

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-11
// ExecuteSQL(strSQL);
被你注释了啊,怎么可能加入数据库呢追问

上面程序我复制错了,实际上我没注释掉。结果显示错误
语句已终止。
违反了 PRIMARY KEY 约束 'PK_student'。不能在对象 'student' 中插入重复键。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网