窗体中有:当前用户名显示 this.label_username
用户类型选择框cb_UserType
旧密码输入框tb_lastPW.Text
新密码输入框tb_NewPW.Text.Trim();
确认密码框tb_ConNewPW
另有两个按钮
想实现的功能是:选择用户类型,接着在旧密码框中输入旧密码,然后输入要修改的新密码和确认密码,当输入旧密码与原旧密码相同并且两次新密码输入一致时实现密码更新(将数据库表中信息更新)。
目前的情况是:能弹出更新成功提示,但数据库中的数据并没有修改。
下面是“确认更新”按钮的事件代码,我刚接触.net不久,真不知道哪里出问题了,分数不多 但望各位大神帮我看下问题出在哪里,小弟万分感谢!
private void btn_OK_Click(object sender, EventArgs e)
{
string lastPW = tb_lastPW.Text.Trim();
string NewPW = tb_NewPW.Text.Trim();
string ConNewPW = tb_ConNewPW.Text.Trim();
if (lastPW == null)
{ MessageBox.Show("旧密码为空,请重新输入!", "提示"); }
else
{
if ( lastPW!=Pw.Pwd )
{ MessageBox.Show("旧密码输入不正确,请重新输入!", "提示"); }
else
{
if (NewPW == null)
{ MessageBox.Show("新密码为空,请重新输入!", "提示"); }
else
{
if (ConNewPW ==null )
{ MessageBox.Show("确认密码为空,请重新输入!", "提示"); }
else
{
if (ConNewPW != NewPW)
{ MessageBox.Show("两次输入不一致,请重新输入!", "提示"); }
else
{
string connectString = "Data Source=.;Initial Catalog=FinSystem;User ID=sa;pwd=1992106713";
SqlConnection sqlchange = new SqlConnection(connectString);
if (cb_UserType.Text == "管理员")
{
string sqlstr = "update Table_Admin set 密码='" + ConNewPW + "' where 登录名='" + this.label_username.Text + "'";
sqlchange.Open();
SqlCommand cmd = new SqlCommand(sqlstr, sqlchange);
cmd.ExecuteNonQuery();
MessageBox.Show("密码修改已成功!", "提示");
}
if (cb_UserType.Text == "普通用户")
{
string sqlstr = "update Table_Users set 密码='" + ConNewPW + "' where 登录名='" + this.label_username.Text + "'";
sqlchange.Open();
SqlCommand cmd = new SqlCommand(sqlstr, sqlchange);
cmd.ExecuteNonQuery( );
MessageBox.Show("密码修改已成功!", "提示");
}
}
this.Close();
------解决思路----------------------
晕~
1、用你的连接字符串里面的用户名、密码登陆sql server企业管理器
2、使用SQL Profiler进行监控(见下图)
3、点击你的程序提交按钮,捕捉提到到数据库的语句
