ExecuteNonQuery无法正常工作,但ExecuteReader正在运行

时间:2015-01-09 09:39:26

标签: c# sql visual-studio-2010

首先不要将其标记为重复,因为这个

ExecutenonQuery not working

ExecutenonQuery not working

ExecuteNonQuery not working in C#

不是我正在寻找的解决方案,语法是正确的,连接也正确,因为SqlDataReader正在工作,我打开连接并在SqlCommand中调用它。这是我的代码

            if (sql_con.State == ConnectionState.Closed)
            {
                sql_con.Open();
            }
            StringBuilder query = new StringBuilder();

            query.Append(String.Format("update tbl_userdata set stage=@stage where username=@name"));

            SqlCommand sql_command2 = new SqlCommand(query.ToString(), sql_con);
            sql_command2.Parameters.AddWithValue("@stage", stage);
            sql_command2.Parameters.AddWithValue("@name", lblName.Text.ToLower());
            sql_command2.ExecuteNonQuery();

调试后我的查询为update tbl_userdata set stage=@stage where username=@name

我不知道这里有什么问题,我删除where clause以查看问题的原因是否存在,但仍然是错误。我不知道这里有什么问题

这是我的连接

SqlConnection sql_con = new SqlConnection(Properties.Settings.Default.dbCon);

抱歉,我忘了把我的错误,错误是阶段没有更新, 这是我的表

tbl_userdata
+--------+-------+-------+
|Username|stage  | coins |
+--------+-------+-------+


Username = nvarchar(5), stage = smallint, coins = smallmoney

1 个答案:

答案 0 :(得分:1)

你不需要做字符串构建器并在查询中追加只是使用字符串如果where where子句的值很好,我的答案可能是愚蠢的,但如果你找不到任何解决方案,值得尝试。