【发布时间】:2015-01-09 09:39:25
【问题描述】:
首先不要将其标记为重复,因为这样
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
【问题讨论】:
-
究竟是什么错误?你的列类型是什么,你的参数值是什么?您的更新查询是否适用于您的 sql 服务器?你调试过你的代码吗?当您向查询添加参数值时,您的查询是什么样的?
-
您使用过 SQL 分析器吗?命令真的发送到服务器了吗?
-
不要为
ExecuteNonQuery假设一些奇怪的行为(没有任何行为)检查您的值和可能的异常。这两个函数之间的唯一区别是,一个返回第一个可用的结果值,而第二个在执行完成后不做任何事情。 -
另一种可能是事务在代码的另一部分打开但从未提交
-
尝试使用您提供的参数在 sql server 中运行 sanme 查询以验证更新查询。其次尝试从 sql profiler 获取 sp 调用以验证查询。我不认为执行非查询是一个问题。
标签: c# sql visual-studio-2010