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

获取值的标签是这个

  <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成空啊

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

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

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

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

where前面加一个空格

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