2014-04-21 16 views
7

Tôi có một thủ tục được lưu trữ trong sql có một tham số bit.I cần phải vượt qua giá trị tham số từ C# .Có ai đó giúp tôi làm thế nào để làm điều đó. Tôi đã chuyển giá trị true/false cho tham số bit nhưng nó không hoạt động.Làm thế nào để vượt qua Bool (BIT) tham số đến máy chủ SQL?

CREATE PROCEDURE checkbit 
     @id varchar(10), 
@IsDeleted bit 
AS 
BEGIN 

IF(@IsDeleted = 1) 
    BEGIN 
     DELETE FROM tablename WHERE ID = @id 

     RETURN 
    END 
END 

My C# code

Im sử dụng thực thể framework.Checking cho giá trị chút đây.

bool chk; 
if(val==1) 
chk=true; 
else 
chk=false; 
context.checkbit(id,chk) 
+1

Mọi người thường phải gửi mã của bạn ... –

+0

http://stackoverflow.com/questions/15569860/passing-parameter-to-stored-procedure-in-c-sharp –

+2

Đối với câu hỏi tương lai nó rất quan trọng để bao gồm chi tiết trong câu hỏi gốc. Thực tế là bạn đang sử dụng thực thể là cần thiết để cho điều này được trả lời – cost

Trả lời

9

Bạn có thể chỉ cần sử dụng 0 hoặc 1 cho BIT lĩnh vực

  • 1 cho TRUE
  • 0 cho FALSE

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

Tôi đang sử dụng khuôn khổ thực thể ở đây.Tôi đã sử dụng đúng/sai nhưng nó không hoạt động. – iysh

+5

Bạn đã đọc câu trả lời của tôi chưa? Tôi đã sử dụng ** số ** ** ** ** ** ** 1 ** – meda

+0

Vì sao SQL Server làm điều này? Tôi đã đập đầu vào một bức tường cố gắng tìm hiểu tại sao giá trị bit của tôi không được cập nhật. Tôi đã đặt giá trị thành 'true' và nó được thực thi không có lỗi, nhưng cơ sở dữ liệu vẫn hiển thị' 0'. – jp2code

2

NẾU bạn sử dụng Ado.net thì hãy thử với dưới đây hy vọng nó sẽ hoạt động.

SqlParameter param = new SqlParameter(); 
      param.ParameterName = "@Isstatus"; 
      param.Value = Isstatus; 
      param.DbType = System.Data.DbType.Boolean 
      cmd.Parameters.Add(param); 

Entity Framework

nếu trở lại sp của bạn đúng hay sai thì bên dưới, bạn có thể sử dụng khác khôn ngoan bạn cần phải thử với khoảng trống.

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

Tôi đang sử dụng khung thực thể tại đây. – iysh

+0

sử dụng mã Khuôn khổ thực thể sẽ hoạt động – MSTdev

Các vấn đề liên quan