问一下这段代码有什么问题啊

获取值的标签是这个

  <input type="password" id="newpwd" runat="server" /></td>

点击事件的代码是这些

             string name = Session["UserName"].ToString();
            string pwd = newpwd.Value.ToString();
            string sqlstr = "update UserInfo set Password='" + pwd + "'where Username ='" + name + "'";
            SqlConnection conn = DBConnection.myconn();
            conn.Open();
            SqlCommand cmd = new SqlCommand(sqlstr, conn);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            conn.Close();

为什么这段会把数据里的数据update成空啊

5个回答

"update UserInfo set Password='" + pwd + "'where Username ='" + name + "'"; 可能你的pwd变量获取的值为空,所以更新之后为空了。

sqlserver可以用profiler监控操作时的sql语句,看一下执行时的sql具体是什么就知道原因了。http://www.cnblogs.com/guwei4037/p/5660888.html

where前面加一个空格

首先更新肯定表里事先有值。你要看看 pwd和 name是否有值,如果有值 看看 是不是String类型 。 update成空的话那就是不报错。只可能是 参数本身为空。 并且你这个update没加条件。 可是更新全表 小心了

liud1
ServiceGood 回复?????5512???: 你可以吧断点打在第5行看看sql是什么。
3 年多之前 回复
weixin_35728460
抗压吧务团队1 加了啊 Username=name 而且 pwd是有值的啊
3 年多之前 回复

在第4行代码设置断点,程序运行起来,看看sqlstr这个语句是不是你想的那样,如果不是,看看前面2个变量哪个有问题

m86872125
HyperMa0 回复?????5512???: 别光怀疑啊,断点调试一下啊
3 年多之前 回复
weixin_35728460
抗压吧务团队1 我怀疑是第二个变量有问题 因为数据库就更新了某一行的pwd为空 但我看了一上午也没研究出哪里有问题
3 年多之前 回复

打断点,然后再把sql贴出来看看

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐