C# MS SQL 更新语句不更新数据库

标签 c# sql

我有一个本地 MS SQL 数据库,我想更新其中一个位字段。 我有以下代码:

static void UpgradeVevo(string nev)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            SqlCommand command = new SqlCommand("UPDATE Vevok SET Torzsvendeg=True Where Nev=" + nev, connection);
            command.ExecuteNonQuery();
        }
        Console.WriteLine(nev+" mostmár törzsvendég");
    }

Torzsvendeg 是一种位数据类型(我也尝试将其值设置为 1),而 Nev 是 varchar。

connectionstring 应该没问题,因为我已经在另一种方法中尝试了 Select,它工作正常。上面的代码没有抛出异常,但是表没有得到更新。

我已经尝试了很长一段时间来寻找答案,但没有成功:/。提前感谢您的帮助!

最佳答案

True 应该在单引号中,因为它是一个字符串文字,例如

UPDATE Vevok SET Torzsvendeg='True'

兄弟,你的引号搞砸了。您的查询应该类似于

"UPDATE Vevok SET Torzsvendeg = 1 Where Nev = '" + nev + "'"

同样,使用参数化查询而不是这个串联查询以避免 SQL 注入(inject)

关于C# MS SQL 更新语句不更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43946621/

相关文章:

sql - 使用 SQL-Server 中的格式将 nvarchar 转换为日期

mysql - SQL从有限制的2个表中选择

c# - Tamir.SharpSsh 重定向输出 (Sha1)

sql - where 子句中的连接字符串是否可 SARGable?

php - 将发布日期与 Codeigniter 中的时间戳进行比较

c# - 使用 Windows 窗体进度条时为 "memory leak"

mysql - 使用 where/if 语句进行求和/计数以查找现有值

c# - 将 MouseHover/MouseLeave 规则应用于表单中的所有链接

c# - 从字符串列表中添加和删除项目,仅在项目不存在时添加

c# - 使用 FakeItEasy 伪造单例