Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Como hacer un SELECT con parámetros en un DataAdapter.

199 views
Skip to first unread message

Victor Espina

unread,
Feb 11, 2004, 5:31:04 PM2/11/04
to
Supongamos que tengo esto:


public DataSet GetInfoCliente(string pcCodigo)
{
SqlConnection oConn = new SqlConnection("....");
SqlDataAdapter oDA = new SqlDataAdapter("select * from clientes where
codigo=@codigo",oConn);
SqlParameter pCodigo = new SqlParameter("@codigo",SqlDbType.Char,10);
pCodigo.Value = pcCodigo;
oDA.SelectCommand.Parameters.Add(pCodigo);

DataSet oDS = new DataSet();
oDA.Fill(oDS);

return oDS;
}

Al ejecutar obtengo una excepción:

System.Data.SqlClient.SqlException: Missing operand.


Alguna idea de que estoy haciendo mal?

Saludos

Victor Espina


David caso

unread,
Feb 12, 2004, 6:31:24 AM2/12/04
to
buenas:


si no entiendo mal, codigo es un char, ¿no?, bueno pues lo mas logico
seria un < where codigo LIKE 'xxxxxx'>


> SqlDataAdapter oDA = new SqlDataAdapter("select * from clientes where
> codigo=@codigo",oConn);
> SqlParameter pCodigo = new SqlParameter("@codigo",SqlDbType.Char,10);


un saludin

Victor Espina

unread,
Feb 12, 2004, 9:37:44 AM2/12/04
to
Ok, esa es otra forma. Pero el punto aqui es porque no reconoce el parámetro
@codigo. Según yo entiendo (y es posible que aqui esté el problema), yo
puedo hacer referencia a variables dentrol del QueryString asociado a un
comando, siempre y cuando defina luego esos parámetros en la colección
Parameters del mismo objeto comando. Es esto, precisamente, lo que no logro
que me funcione; por lo tanto, da igual si uso WHERE codigo=@codigo o WHERE
codigo LIKE @codigo... el error será el mismo, o no?


Saludos

Victor Espina

"David caso" <listas.algarrobo.quitame.casovazquez.net> wrote in message
news:%237L8ZvV...@TK2MSFTNGP10.phx.gbl...

Manuel Etcheto

unread,
Feb 12, 2004, 1:59:08 PM2/12/04
to
Victor: El adapter y el parámetro están correctos (1 de
las maneras posibles)
¿estás seguro que llega un valor correcto al método?

Prueba ingresando directamente un string de código válido:
DataSet Dset = GetInfoCliente("codigoVerdadero");

Y nos dices

Suerte
Manuel


>-----Mensaje original-----

>.
>

David Salgado

unread,
Feb 13, 2004, 5:16:49 PM2/13/04
to
No tengo todo el thread bajado, pero intentaré echar un cable :D

La manera más facil de DataAdapter con parámetros es que a la hora de
crearlo le pases al constructor del dataadapter un OleDbCommand. Y le
añades los parámetros a este :)

PD-> Repito que no tengo bajado todo el thread y es posible que esto ya
estaría respondido, si es así lo siento por pesado :P

Victor Espina

unread,
Feb 16, 2004, 10:10:20 AM2/16/04
to
Bueno, yo logré hacer funcionar el código original, pero con OleDb.
Aparentemente, por lo que he leido, el problema es que con SqlClient los
parámetros deben marcarse con el signo "?" en lugar de "@". Aun no he hecho
la prueba.

Saludos

Victor Espina

"David Salgado" <das...@yahoo.KITAcom> wrote in message
news:%23xsLX8n...@TK2MSFTNGP10.phx.gbl...

0 new messages