problema al pasarle parámetros a un sqlOleDbCommand

14/10/2008 - 22:20 por JM | Informe spam
Hola a todos, estoy conectándome a un dbc de visual foxpro desde asp.net y
c#, así
using (cn = new OleDbConnection(@"Provider=vfpoledb.1;Data
Source=d:\web\db\xn.dbc;Collating Sequence=machine;")) {
string filtro = "caro";
OleDbCommand cmd = new OleDbCommand("Select * from listado where nombre= ?",
cn);
cmd.Parameters.Add("?", OleDbType.Char, 140,filtro);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);


y aunque no genera ningún error no trae ninguna fila
ds.Tables[0].Rows.Count ==0

ya he intentado on
cmd.Parameters.AddWithValue("?",filtro);

creando el parámetro antes
OleDbParameter p1 = new OleDbParameter?", OleDbType.Char, 140);
p1.Value = filtro;
cmd.Parameters.Add(p1);

y nunca trae ningún registro, si quito la clausula where funciona sin
problemas.

He estado buscando en internet y no logro dar con el problema :(

Saludos y gracias :)
 

Leer las respuestas

#1 pablo
16/10/2008 - 16:15 | Informe spam
Hola, Lo más importante de los parametros de un OLEDBCommand es el orden,
deben ir en el mismo orden que los pusiste. no necesitas especificar que el
parametro lo nombraste "?" solo debes agregar el paramametro en orden al
OleDBParameterCollection. luego si sigue fallando deberias revisar si
necesitas comillas simples "'" y por ultimo verificar algún valor nulo

saludos

"JM" escribió en el mensaje
news:
Hola a todos, estoy conectándome a un dbc de visual foxpro desde asp.net y
c#, así
using (cn = new OleDbConnection(@"Provider=vfpoledb.1;Data
Source=d:\web\db\xn.dbc;Collating Sequence=machine;")) {
string filtro = "caro";
OleDbCommand cmd = new OleDbCommand("Select * from listado where nombre=
?", cn);
cmd.Parameters.Add("?", OleDbType.Char, 140,filtro);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);


y aunque no genera ningún error no trae ninguna fila
ds.Tables[0].Rows.Count ==0

ya he intentado on
cmd.Parameters.AddWithValue("?",filtro);

creando el parámetro antes
OleDbParameter p1 = new OleDbParameter?", OleDbType.Char, 140);
p1.Value = filtro;
cmd.Parameters.Add(p1);

y nunca trae ningún registro, si quito la clausula where funciona sin
problemas.

He estado buscando en internet y no logro dar con el problema :(

Saludos y gracias :)

Preguntas similares