无法使用C#Win表单更新SQL数据库

无法使用C#Win表单更新SQL数据库,c#,sql,sql-server,database,visual-studio-2013,C#,Sql,Sql Server,Database,Visual Studio 2013,我的申请(C#Win表格)在不久前运行良好,即(更新、插入、删除…)。 但是在我关闭程序并打开数据库之后,没有进行任何更改 在运行过程中,我没有收到任何错误。 我使用的是VS2013 professional,SQL数据库,C# 如果没有任何附加事务,例如TransactionScope或SqlTransaction(我们在您的代码中看不到),则没有理由回滚更新。我相信你可能没有更新你认为的数据 虽然不一定是解决方案,但使用参数化查询比使用字符串要好得多-这具有安全性(Sql注入)、性能(查询计

我的申请(C#Win表格)在不久前运行良好,即(更新、插入、删除…)。 但是在我关闭程序并打开数据库之后,没有进行任何更改

在运行过程中,我没有收到任何错误。 我使用的是VS2013 professional,SQL数据库,C#


如果没有任何附加事务,例如
TransactionScope
SqlTransaction
(我们在您的代码中看不到),则没有理由回滚更新。我相信你可能没有更新你认为的数据

虽然不一定是解决方案,但使用参数化查询比使用字符串要好得多-这具有安全性(Sql注入)、性能(查询计划缓存),并且有助于消除与引号、转义和类型转换相关的错误(这里可能是这种情况-例如,您正在使用引号将
newSum
插入
InStock
中,这可能意味着一个数值,这意味着字符类型)


其他小修改包括处理
SqlCommand
,还请注意,处理连接也会关闭它,因此您不需要显式关闭它(尽管这样做不会造成伤害)。

试试这个:它可能对您有用

    string Query = "UPDATE FullInk SET InStock = '" + newSum + "' Where Catalog = '" + catalog + "'";
    SqlConnection connection = new SqlConnection(conString);
    connection.Open();
    SqlCommand cmd = new SqlCommand(Query, sql_con);
    cmd.ExecuteNonQuery();    
    connection.Close(); 
另外,添加断点并检查代码是否正在执行
因为您的代码看起来很好,&应该可以工作

提及/提供一些代码…以便我们能够理解和跟踪问题您没有提交事务,关闭应用程序导致回滚丢失更改?也许这就是问题所在。但最初它起作用了,我没有更改代码。使用(SqlConnection-connection=new-SqlConnection(consting)){SqlCommand-cmd=new-SqlCommand(“更新[FullInk]集[InStock]='“+newSum+”,其中[Catalog]='“+Catalog+'”);cmd.CommandType=CommandType.Text;cmd.Connection=Connection;Connection.Open();cmd.ExecuteNonQuery();Connection.Close();}这是我所做的更新命令的示例。
using (var connection = new SqlConnection(conString)) 
using (var cmd = new SqlCommand("UPDATE [FullInk] SET [InStock] = @InStock Where [Catalog] = @Catalog")) 
{ 
    cmd.CommandType = CommandType.Text; 
    cmd.Connection = connection; 
    cmd.Parameters.AddWithValue("@InStock", newSum);
    cmd.Parameters.AddWithValue("@Catalog", catalog);
    connection.Open(); 
    cmd.ExecuteNonQuery();    
}
    string Query = "UPDATE FullInk SET InStock = '" + newSum + "' Where Catalog = '" + catalog + "'";
    SqlConnection connection = new SqlConnection(conString);
    connection.Open();
    SqlCommand cmd = new SqlCommand(Query, sql_con);
    cmd.ExecuteNonQuery();    
    connection.Close();