2014-04-21 11 views
7

Ho una procedura memorizzata in sql che ha un parametro bit. Devo passare il valore del parametro da C#. Può qualcuno aiutarmi come farlo. Ho passato vero/falso valore al parametro bit ma non funziona.Come passare il parametro Bool (BIT) al server SQL?

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

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

     RETURN 
    END 
END 

mio codice C#

Im usando entità framework.Checking per il valore po 'qui.

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

E 'usuale per pubblicare il tuo codice ... –

+0

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

+2

Per domande future è molto importante per includere dettagli nella domanda originale. Il fatto che tu stia utilizzando Entità è necessario per rispondere a questa domanda – cost

risposta

9

Si può semplicemente utilizzare 0 o 1 per la BIT campo

  • 1 per TRUE
  • 0 per FALSE

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

Sto usando il framework di entità qui. Ho usato true/false ma non funziona. – iysh

+5

Hai letto la mia risposta? Ho detto di usare ** numeri ** o ** 0 ** o ** 1 ** – meda

+0

Perché SQL Server ha fatto questo? Ho battuto la mia testa contro un muro cercando di scoprire perché il mio bit value non si stava aggiornando. Stavo impostando il valore su 'true' ed eseguito senza errori, ma il database continuava a mostrare' 0'. – jp2code

2

SE il tuo utilizzo di Ado.net quindi provare con sotto spero che funzionerà.

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

Entity Framework

, se il ritorno sp vero o falso, allora sotto è possibile utilizzare altri saggi è necessario provare con vuoto.

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

Qui sto usando il framework di entità. – iysh

+0

utilizza il codice framework Entity funzionerà – MSTdev

Problemi correlati