如何将Bool(BIT)参数传递到SQL server

本文关键字:参数传递 SQL server BIT Bool | 更新日期: 2023-09-27 17:59:05

我在sql中有一个存储过程,它有一个位参数。我需要从c#传递参数值。有人能帮我怎么做吗?我向bit参数传递了true/false值,但它不起作用。

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)  

如何将Bool(BIT)参数传递到SQL server

您只需将01用于BIT字段

  • 1用于TRUE
  • 0代替FALSE

context.checkbit(id,val);// ? 1 : 0;

如果你使用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,那么下面你可以使用其他你需要尝试的方法。

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();
    }