C# 将varchar值转换为数据类型位时转换失败

C# 将varchar值转换为数据类型位时转换失败,c#,sql-server,asp.net-core-mvc,C#,Sql Server,Asp.net Core Mvc,我正在尝试向数据库中添加新用户,但出现以下错误: System.Data.SqlClient.SqlException:“将varchar值'@actief'转换为数据类型位时,转换失败。” 我不明白为什么,因为Actief是我数据库中的Bit类型 我试着做下面的改变,但没有解决任何问题 cmd.Parameters.Add("@actief", SqlDbType.Bit); 代码: insert命令完全错误-需要从VALUES部分的SQL变量中删除所有这些单引号 试试这个: cmd.Com

我正在尝试向数据库中添加新用户,但出现以下错误:

System.Data.SqlClient.SqlException:“将varchar值'@actief'转换为数据类型位时,转换失败。”

我不明白为什么,因为Actief是我数据库中的Bit类型

我试着做下面的改变,但没有解决任何问题

cmd.Parameters.Add("@actief", SqlDbType.Bit);
代码:


insert命令完全错误-需要从VALUES部分的SQL变量中删除所有这些单引号

试试这个:

cmd.CommandText = "INSERT INTO dbo.Gebruiker (Naam, Voornaam, Rol, Actief, Adres, Gemeente, Land, Functie) " +
                  "VALUES (@naam, @voornaam, @rol, @actief, @adres, @gemeente, @land, @functie)";

使用单引号,您发送的是字符串文字,而不是这些变量的值!插入到您的INSERT命令中—T-SQL无法将“@actief”转换为位值也就不足为奇了。…

cmd.Parameters。AddWithValue@actief1.发送1而不是true。这可能是一个很好的读物@拉奴终于证明了你是人类哦,我不知道那个@SeanLange。。。
cmd.CommandText = "INSERT INTO dbo.Gebruiker (Naam, Voornaam, Rol, Actief, Adres, Gemeente, Land, Functie) " +
                  "VALUES (@naam, @voornaam, @rol, @actief, @adres, @gemeente, @land, @functie)";