日期:2014-05-20  浏览次数:20383 次

更新数据的问题~求助
不报错,但确实没更新这条数据,换了好几种写法,都不行!
哪位大哥给看看啊,谢谢了。
C# code

        string connectionString = ConfigurationManager.ConnectionStrings["CreateWord"].ConnectionString;
            SqlConnection con = new SqlConnection(connectionString);
            con.Open();
            string name = Session["S_name"].ToString();
            string cmdtext = "update IH_login set IH_pw='"+ pw +"' where IH_username='" + name + "'";
            SqlCommand cmd1 = new SqlCommand(cmdtext, con);
            cmd1.ExecuteNonQuery();
            
            if ((int)cmd1.ExecuteNonQuery() > 0)
            {
                Label4.Text = "密码修改成功!";
            }
            else
            {
                Label4.Text = "失败!";
            }
            con.Close();



链接数据库肯定没问题,问题就在UPDATE……
谁给推荐个好点的资源,关于更新数据如何写,我从写这段也行。

------解决方案--------------------
执行了两遍?

1. 在SQL server management studio中执行cmdtext 确保where 能找的数据
2. 确定connectionString连接的是正确的数据库,
3. 用SQL Profile看看什么sql语句被执行了。

另外,你这样拼接sql 语句,小心sql injection.
------解决方案--------------------
pw变量的值不会就是原来的值吧,代码本身没错。
------解决方案--------------------
C# code

string connectionString = ConfigurationManager.ConnectionStrings["CreateWord"].ConnectionString;
            SqlConnection con = new SqlConnection(connectionString);
            con.Open();
            string name = Session["S_name"].ToString();
            string cmdtext = "update IH_login set IH_pw='"+ pw +"' where IH_username='" + name + "'";
            SqlCommand cmd1 = new SqlCommand(cmdtext, con);
            
            if ((int)cmd1.ExecuteNonQuery() > 0)
            {
                Label4.Text = name+"密码修改成功!新密码"+pw;
            }
            else
            {
                Label4.Text = "失败!";
            }
            con.Close();