数据库
首页 > 数据库> > C#布尔值需要转换为SQL Server的位,因此不是True,它需要是1

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