Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lab Design

Passar parametro do C# para a SP

Recommended Posts

Eu to num projeto asp.net C# e não to conseguindo resolver um pequeno problema mas que ocorre em diversas páginas contendo formularios.

 

- Nas tabelas do SQL 2000 alguns campos já estao como default NULL

- Testei todas as SP no enterprise e estão ok

 

O problema é quando os dados chegam no C# que prepara a chamada para a SP.

Se vier um campo em branco dá um erro na SP alegando que não foi passado parametro para a var "TAL".

 

Eu tentei os seguintes métodos no C#:

 

// init do método insert

string nomeDocampo

 

1)

if (campoTal =='')

cmd.Parameters.AddWithValue("@nomeDocampo", null);

else

cmd.Parameters.AddWithValue("@nomeDocampo", nomeDocampo);

 

2)

if (campoTal =='')

cmd.Parameters.AddWithValue("@nomeDocampo", NULLl);

else

cmd.Parameters.AddWithValue("@nomeDocampo", nomeDocampo);

 

3)

if (campoTal =='')

cmd.Parameters.AddWithValue("@nomeDocampo", 'NULL');

else

cmd.Parameters.AddWithValue("@nomeDocampo", nomeDocampo);

 

4)

if (campoTal =='')

cmd.Parameters.AddWithValue("@nomeDocampo", DBNull.Valuel);

else

cmd.Parameters.AddWithValue("@nomeDocampo", nomeDocampo);

 

e todos deram erro.

 

Existe alguma forma de colocar esse check na propria SP deixando o site livre desse encargo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido:

 

Eu observei que na passagem de pagametros o nome da variavel estava entre aspas e portanto qualquer parametro teria que estar entre aspas tambem.

 

Então ficou:

 

if (campoTal ==null)

cmd.Parameters.AddWithValue("@nomeDocampo", "NULL");

else

cmd.Parameters.AddWithValue("@nomeDocampo", nomeDocampo);

 

E funcionou beleza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Lab Design,

 

Bom para informar que o valor do parâmetro é nulo, pode-se utilizar o DbNull.Value que funcionará corretamente.

 

Qualquer dúvida, postae denovo.

 

Flww

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu amigo, já resolvi da maneira que informei acima, embora eu ache que o ideal seria fazer o tratamento dentro da SP, já que as SP's podem ser utilizadas diversas vezes e por diversas aplicações simultâneas e dessa forma que fiz, vou ter que fazer em todas as aplicações.

 

Acredito que haja uma forma de informar no header da SP que tal parametro pode ser null ou sei talvez, o fato da var estar null, o C# não passe nada como parametro, dai o erro retornado pela SP da falta de parametros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.