C# 如何将Bool(BIT)参数传递给SQLServer?
我在sql中有一个存储过程,它有一个位参数。我需要从c#传递参数值。有人能帮我怎么做吗。我将真/假值传递给位参数,但它不起作用C# 如何将Bool(BIT)参数传递给SQLServer?,c#,asp.net,sql,C#,Asp.net,Sql,我在sql中有一个存储过程,它有一个位参数。我需要从c#传递参数值。有人能帮我怎么做吗。我将真/假值传递给位参数,但它不起作用 CREATE PROCEDURE checkbit @id varchar(10), @IsDeleted bit AS BEGIN IF(@IsDeleted = 1) BEGIN DELETE FROM tablename WHERE ID = @id RETURN END END 我的C代码 我正在
CREATE PROCEDURE checkbit
@id varchar(10),
@IsDeleted bit
AS
BEGIN
IF(@IsDeleted = 1)
BEGIN
DELETE FROM tablename WHERE ID = @id
RETURN
END
END
我的C代码
我正在使用实体框架。在这里检查位值
bool chk;
if(val==1)
chk=true;
else
chk=false;
context.checkbit(id,chk)
对于
位
字段,只需使用0
或1
对于1
TRUE
对于0
FALSE
如果您正在使用Ado.net,请尝试下面的方法,希望它能起作用
SqlParameter param = new SqlParameter();
param.ParameterName = "@Isstatus";
param.Value = Isstatus;
param.DbType = System.Data.DbType.Boolean
cmd.Parameters.Add(param);
实体框架
如果您的sp返回true或false,那么您可以使用下面的其他方法来尝试使用void
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
public virtual bool Deletecustomer(int id ,bool IsDeleted )
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<bool>("EXEC checkbit({0},{1})", id,IsDeleted ).SingleOrDefault();
}
使用System.Data.Entity.Infrastructure;
使用System.Data.Object;
公共虚拟bool Deletecustomer(int-id,bool已删除)
{
返回((IObjectContextAdapter)this.ObjectContext.ExecuteStoreQuery(“EXEC校验位({0},{1})”,id,IsDeleted.SingleOrDefault();
}
通常会发布您的代码……对于将来的问题,在原始问题中包含详细信息非常重要。为了回答这个问题,您需要使用实体。我在这里使用实体框架。我使用了true/false,但它不起作用。您阅读了我的答案吗?我说过使用数字0或1为什么SQL Server会这样做?我一直在拼命想弄清楚为什么我的比特值没有更新。我将该值设置为true
,执行时没有错误,但数据库一直显示0
。是的,对于SQL server,没有真或假,只有位值
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
public virtual bool Deletecustomer(int id ,bool IsDeleted )
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<bool>("EXEC checkbit({0},{1})", id,IsDeleted ).SingleOrDefault();
}