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 :)

Preguntas similare

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 :)
Respuesta Responder a este mensaje
#2 JM
17/10/2008 - 09:58 | Informe spam
gracias. Al final el problema era otra cosa
necesitaba agregar el parámetro de esta forma

cmd.Parameters.Add("CHAR", OleDbType.Char).Value
indicando al inicio Char, ya que el oledb de VFP no soporta parámetros de
otro tipo por un error (lo encontré en una kb de microsoft :))

gracias por tu tiempo :)

"pablo" <.> escribió en el mensaje de
noticias:
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 :)





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida