2014-04-21 17 views
7

Mam procedura składowana w sql, który ma parametr bitowy. Muszę przekazać wartość parametru z C# .Can Ktoś mi pomóc, jak to zrobić. Podałem wartość true/false do parametru bitowego, ale nie działa.Jak przekazać parametr Bool (BIT) do serwera SQL?

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

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

     RETURN 
    END 
END 

Mam C# kod

Im przy użyciu jednostki framework.Checking do wartości bitowej tutaj.

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

To zwykle pisać kod ... –

+0

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

+2

Dla przyszłych pytań to bardzo ważne uwzględnić szczegóły w pytaniu oryginalnym. Fakt, że używasz jednostek, jest potrzebny, aby można było na nie odpowiedzieć. – cost

Odpowiedz

9

Można po prostu użyć 0 lub 1 na polu

  • 1BIT dla TRUE
  • 0 dla FALSE

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

Używam tutaj struktury encji. Użyłem true/false, ale to nie działa. – iysh

+5

Czy przeczytałeś moją odpowiedź? Powiedziałem użycie ** numery ** albo ** 0 ** lub ** 1 ** – meda

+0

Dlaczego SQL Server to zrobił? Uderzyłem głową o ścianę, próbując dowiedzieć się, dlaczego moja wartość nie aktualizuje się. Ustawiłem wartość na "true" i wykonałem ją bez błędów, ale baza danych wyświetlała "0". – jp2code

2

Jeśli korzystasz z Ado.net, spróbuj z nadzieją, że to zadziała.

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

Entity Framework

jeśli powrót sp prawda czy fałsz następnie poniżej można użyć innych mądrych trzeba spróbować z pustki.

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

Używam tutaj struktury encji. – iysh

+0

użyj kodu struktury Entity będzie działać – MSTdev

Powiązane problemy