C#布尔值需要转换为SQL Server的位,因此不是True,它需要是1
作者:互联网
我有一个数据类型为bool的C#属性,当它被设置时,它变为True或False.
但是,我需要它与bit类型的SQL Server表列匹配,以便将其保存为1或0.
SQL Server列:
StormOut bit
C#属性
public bool StormOut { get; set; }
C#SQL语句:
string querystring = "UPDATE tblSignOnOff SET StormOut = " + storm.StormOut + " WHERE id = 1902";
否则,当前C#中的SQL语句为
UPDATE tblSignOnOff
SET StormOut = True
WHERE id = 1902
导致错误:
Invalid column name ‘True’.
解决方法:
您错过了单引号.像这样更改:
string querystring = "UPDATE tblSignOnOff SET StormOut = '" + storm.StormOut + "' WHERE id = 1902";
但是重要的一点:您应该始终像下面这样使用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);
标签:type-conversion,sqldatatypes,c,sql-server 来源: https://codeday.me/bug/20191027/1947961.html