C# boolean 需要为 SQL Server 转换为 bit,所以它需要是 1 而不是 True

5 c# sql-server type-conversion sqldatatypes

我有一个数据类型的 C# 属性,bool当它被设置时,它变成了一个TrueFalse.

但是我需要它与类型的 SQL Server 表列匹配,bit以便将其保存为 1 或 0。

SQL Server 列:

StormOut bit
Run Code Online (Sandbox Code Playgroud)

C# 属性

public bool StormOut { get; set; }
Run Code Online (Sandbox Code Playgroud)

C# SQL 语句:

string querystring = "UPDATE tblSignOnOff SET StormOut = " + storm.StormOut + " WHERE id = 1902";
Run Code Online (Sandbox Code Playgroud)

否则当前 C# 中的 SQL 语句是

UPDATE tblSignOnOff 
SET StormOut = True 
WHERE id = 1902
Run Code Online (Sandbox Code Playgroud)

这导致错误:

无效的列名“真”。

Sal*_*ari 5

你错过了单引号。像这样改变:

string querystring = "UPDATE tblSignOnOff SET StormOut = '" + storm.StormOut + "' WHERE id = 1902";
Run Code Online (Sandbox Code Playgroud)

但一个重要的注意事项:您应该始终使用parameterized queries如下所示。这种字符串连接适用于SQL Injection

string querystring = "UPDATE tblSignOnOff SET StormOut = @StormOut WHERE id = @id";
yourCommand.Parameters.AddWithValue("@id", 1902);
yourCommand.Parameters.AddWithValue("@StormOut", storm.StormOut);
Run Code Online (Sandbox Code Playgroud)

  • 是:“使用参数化查询”!永远不要通过简单地连接字符串/值来构建 sql 语句。 (4认同)