Replanteo la pregunta

23/02/2006 - 20:27 por Geovanny Quirós C. | Informe spam
Tengo el siguiente codigo con el que pretendo acceder a una carpeta que
contiene archivos DBF de Foxpro
Ernesto amablemente me pasó un String de Conexion que es el que estoy
probando en este momento.
Esto en Public Class...
Private OledbConnectionString = "Provider=VFPOLEDB.1;Data Source=c:\codeas
;Mode=Share Deny None;Extended Properties="";User ID="";Mask
Password=False;Cache Authentication=False;Encrypt Password=False;Collating
Sequence=MACHINE;"

Private DSUsuarios As New DataSet



Esto en mi Sub...

Dim CnOledb As New OleDbConnection(OledbConnectionString)

Dim cmOledb As New OleDbCommand("Select * from masoc01 where cta=@usuario",
CnOledb)

cmOledb.Parameters.Add("@usuario", Txtusuario.Text)

Dim DAUsuarios As New OleDbDataAdapter(cmOledb)

CnOledb.Open()

cmOledb.ExecuteNonQuery()

DAUsuarios.Fill(DSUsuarios)

CnOledb.Close()

cmOledb.Dispose()

CnOledb.Dispose()



Cuando ejecuto la consulta se me cae en la linea 78 con el siguiente error:

Missing operand.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual.
Revise el seguimiento de la pila para obtener más información acerca del
error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException: Missing operand.

Error de código fuente:



Línea 76: Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
Línea 77: CnOledb.Open()
Línea 78: cmOledb.ExecuteNonQuery()
Línea 79: DAUsuarios.Fill(DSUsuarios)
Línea 80: CnOledb.Close()



Esta bien que utilize el ExecuteNonquery()?

Cual podría ser el error?

Preguntas similare

Leer las respuestas

#6 Geovanny Quirós C.
24/02/2006 - 00:27 | Informe spam
Ok, entiendo, pero como deberia quedar esta porcion de codigo para hacerlo
con un DataReader, si ves un poco mas abajo estoy tratando de cargar el
dataset llamado DSUsuarios.

La linea 78 es esta: cmOledb.ExecuteNonQuery()


Dim CnOledb As New OleDbConnection(OledbConnectionString)
Dim cmOledb As New OleDbCommand("Select * from masoc01 where cta=@usuario",
CnOledb)
cmOledb.Parameters.Add("@usuario", Txtusuario.Text)
Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
CnOledb.Open()
cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
CnOledb.Close()
cmOledb.Dispose()
CnOledb.Dispose()


"Ernesto Díaz" escribió en el mensaje
news:%
Por otro lado lo que comenta nuestro otro compañero, que comenta que no
debes de usar el ExecuteNonQuery, si quieres obtener los datos de la
consulta por que no usas un DataReader o un DataSet para que alli te
deposite el comando o el DataAdapter el resultado de la consulta


"Ernesto Díaz" escribió en el mensaje
news:euiS4$
Oye cual es la linea 78, por otro lado veo que el query lo quieres crear
con un parametro que agregas, por que no pruebas poniendo un query sin
ese filtro, o si te esta generando bien el query???

Saludos

"Geovanny Quirós C." escribió en el mensaje
news:
Ernesto:
Revisando la ejecución paso a paso:
La conexion pasa bien
En el momento de ejecutar la sentencia " cmOledb.ExecuteNonQuery() " es
cuando se cae y me envía el mensaje de error, lo que no entiendo es
porque me dice "Missing operand."

He revisado el codigo muy detenidamente y no hay errores de sintaxis.

Es mas el mismo codigo lo corro con la tabla convertida a Acces y con el
string de conexion para acces y todo sale bien, la urgencia es que no
puedo migrar las tablas a access porque la aplicacion debe correr en
linea.

Gracias mi amigo espero me puedas iluminar.



"Ernesto Díaz" escribió en el mensaje
news:%23T$
Oye Geovanny, la conexion te la esta ejecutando correctamente, si te la
abre y todo correcto??? es entonces cuando deseas hacer la consulta
cuando te pone el error???

Saludos

Ernesto Díaz

"Geovanny Quirós C." escribió en el mensaje
news:
Tengo el siguiente codigo con el que pretendo acceder a una carpeta
que contiene archivos DBF de Foxpro
Ernesto amablemente me pasó un String de Conexion que es el que estoy
probando en este momento.
Esto en Public Class...
Private OledbConnectionString = "Provider=VFPOLEDB.1;Data
Source=c:\codeas ;Mode=Share Deny None;Extended Properties="";User
ID="";Mask Password=False;Cache Authentication=False;Encrypt
Password=False;Collating Sequence=MACHINE;"

Private DSUsuarios As New DataSet



Esto en mi Sub...

Dim CnOledb As New OleDbConnection(OledbConnectionString)

Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

cmOledb.Parameters.Add("@usuario", Txtusuario.Text)

Dim DAUsuarios As New OleDbDataAdapter(cmOledb)

CnOledb.Open()

cmOledb.ExecuteNonQuery()

DAUsuarios.Fill(DSUsuarios)

CnOledb.Close()

cmOledb.Dispose()

CnOledb.Dispose()



Cuando ejecuto la consulta se me cae en la linea 78 con el siguiente
error:

Missing operand.
Descripción: Excepción no controlada al ejecutar la solicitud Web
actual. Revise el seguimiento de la pila para obtener más información
acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException: Missing
operand.

Error de código fuente:



Línea 76: Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
Línea 77: CnOledb.Open()
Línea 78: cmOledb.ExecuteNonQuery()
Línea 79: DAUsuarios.Fill(DSUsuarios)
Línea 80: CnOledb.Close()



Esta bien que utilize el ExecuteNonquery()?

Cual podría ser el error?


























Respuesta Responder a este mensaje
#7 WillyXoft
24/02/2006 - 07:13 | Informe spam
Intenta cambiando esto:
Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

Por esto:
Dim cmOledb As New OleDbCommand("Select * from masoc01 where cta = ?",
CnOledb)

Si todo sale bien, después elimina las líneas donde abres y cierras la
conexión, así como la del ExecuteNonQuery, ya que salvo que desees
contar el numero de filas afectadas están de más. -Aún en ese caso están
de más, es mejor realizar un conteo de filas del DataTable resultante.

' codigo...
' CnOledb.Open()
' cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
' CnOledb.Close()
' mas codigo...

Por otro lado, si posteriormente deseas realizar actualización de datos
en otro procedimiento: DAUsuarios.Update(...)
Pues entonces deberías declarar a nivel de clase al DataAdapter
DAUsuarios y el resto de los objetos involucrados: CnOledb y cmOledb.
Por lo que también tendrías que mover sus líneas Dispose a algún otro
procedimiento más adecuado.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"La verdadera medida de la riqueza es el no estar
demasiado cerca ni demasiado lejos de la pobreza."
- Lucio Anneo Séneca (2 a.C.-65 d.C); filósofo latino.



Geovanny Quirós C. wrote:
Ok, entiendo, pero como deberia quedar esta porcion de codigo para
hacerlo con un DataReader, si ves un poco mas abajo estoy tratando de
cargar el dataset llamado DSUsuarios.

La linea 78 es esta: cmOledb.ExecuteNonQuery()


Dim CnOledb As New OleDbConnection(OledbConnectionString)
Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)
cmOledb.Parameters.Add("@usuario", Txtusuario.Text)
Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
CnOledb.Open()
cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
CnOledb.Close()
cmOledb.Dispose()
CnOledb.Dispose()


"Ernesto Díaz" escribió en el mensaje
news:%
Por otro lado lo que comenta nuestro otro compañero, que comenta que
no debes de usar el ExecuteNonQuery, si quieres obtener los datos de
la consulta por que no usas un DataReader o un DataSet para que alli
te deposite el comando o el DataAdapter el resultado de la consulta


"Ernesto Díaz" escribió en el mensaje
news:euiS4$
Oye cual es la linea 78, por otro lado veo que el query lo quieres
crear con un parametro que agregas, por que no pruebas poniendo un
query sin ese filtro, o si te esta generando bien el query???

Saludos

"Geovanny Quirós C." escribió en el mensaje
news:
Ernesto:
Revisando la ejecución paso a paso:
La conexion pasa bien
En el momento de ejecutar la sentencia "
cmOledb.ExecuteNonQuery() " es cuando se cae y me envía el mensaje
de error, lo que no entiendo es porque me dice "Missing operand."

He revisado el codigo muy detenidamente y no hay errores de
sintaxis.

Es mas el mismo codigo lo corro con la tabla convertida a Acces y
con el string de conexion para acces y todo sale bien, la urgencia
es que no puedo migrar las tablas a access porque la aplicacion
debe correr en linea.

Gracias mi amigo espero me puedas iluminar.



"Ernesto Díaz" escribió en el mensaje
news:%23T$
Oye Geovanny, la conexion te la esta ejecutando correctamente, si
te la abre y todo correcto??? es entonces cuando deseas hacer la
consulta cuando te pone el error???

Saludos

Ernesto Díaz

"Geovanny Quirós C." escribió en el mensaje
news:
Tengo el siguiente codigo con el que pretendo acceder a una
carpeta que contiene archivos DBF de Foxpro
Ernesto amablemente me pasó un String de Conexion que es el que
estoy probando en este momento.
Esto en Public Class...
Private OledbConnectionString = "Provider=VFPOLEDB.1;Data
Source=c:\codeas ;Mode=Share Deny None;Extended
Properties="";User ID="";Mask Password=False;Cache
Authentication=False;Encrypt Password=False;Collating
Sequence=MACHINE;"

Private DSUsuarios As New DataSet



Esto en mi Sub...

Dim CnOledb As New OleDbConnection(OledbConnectionString)

Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

cmOledb.Parameters.Add("@usuario", Txtusuario.Text)

Dim DAUsuarios As New OleDbDataAdapter(cmOledb)

CnOledb.Open()

cmOledb.ExecuteNonQuery()

DAUsuarios.Fill(DSUsuarios)

CnOledb.Close()

cmOledb.Dispose()

CnOledb.Dispose()



Cuando ejecuto la consulta se me cae en la linea 78 con el
siguiente error:

Missing operand.
Descripción: Excepción no controlada al ejecutar la solicitud Web
actual. Revise el seguimiento de la pila para obtener más
información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException:
Missing operand.

Error de código fuente:



Línea 76: Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
Línea 77: CnOledb.Open()
Línea 78: cmOledb.ExecuteNonQuery()
Línea 79: DAUsuarios.Fill(DSUsuarios)
Línea 80: CnOledb.Close()



Esta bien que utilize el ExecuteNonquery()?

Cual podría ser el error?
Respuesta Responder a este mensaje
#8 WillyXoft
25/02/2006 - 05:29 | Informe spam
Con el Provedor de Datos .NET para OleDb, como para el de Odbc,
el orden en el que los objetos Parameter son agregados a la colección
Parameters -aún cuando sólo especificas nombre y valor se crea un objeto
Parameter para ser agregado a la colección- debe correponder con el
orden en el que disponen los parámetros correspondientes en la
consulta, o bien el orden en el que se declaran en un procedimiento
almacenado. Así pues el código que ejemplificaste debería funcionar.

Esta "restricción" de los Provedores de Datos OleDb y Odbc pienso que es
a causa de las limitaciones de algunos gestores soportados, pagando
justos por pecadores, de modo que se tiene que acatar incluso contra SQL
Server si se utiliza OleDb u Odbc. Mientras que con los Provedores de
Datos para .NET que son específicos para un gestor, como el SQLClient
para SQL Server o el ODPNET de/para Oracle, si soportan parámetros con
nombre -aunque con nomenclatura distinta: "@ParamName" para SQLClient, y
":ParamName" para ODPNET.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"Todos los ríos van al mar, pero el mar no se desborda."
- Proverbio chino.


Geovanny Quirós C. wrote:
Willy muchas gracias por el ejemplo y la solución, ahora ya puedo
continuar con mi proyecto:

Solo me queda una duda:
que pasa si tengo que enviar mas parametros en otras consultas, como
interpreta el VS el "?" y como sabe cual parametro corresponde a
cada cual?

ejemplo:


Dim cmOledb As New OleDb.OleDbCommand("SELECT * FROM mcobra01 WHERE
cta = ? and CodCredito= ?", CnOledb)
cmOledb.Parameters.Add("@cta", Txtusuario.Text)
cmOledb.Parameters.Add("@CodCredito", TxtCodCredito.Text)

"WillyXoft" escribió en el mensaje
news:
Trate de replicar tu caso, y usando "@ParamName" me arroja el mismo
error, pero al cambiarlo por "?" me funcionó sin problemas. Y es que
los parámetros con "nombre" sólo funcionan con SQL Server. En el
caso de OleDb Provider y Odbc Provider se deben usar los signos de
interrogación.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"El exceso es el veneno de la razón."
- Francisco de Quevedo y Villegas (1580-1645); escritor español.



Geovanny Quirós C. wrote:
Willy, hice los cambios que sugieres y me sigue dando el mimo error:
Missing operand
La verdad no se dónde está el misterio.


"WillyXoft" escribió en el mensaje
news:
Intenta cambiando esto:
Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

Por esto:
Dim cmOledb As New OleDbCommand("Select * from masoc01 where cta >>>> ?", CnOledb)

Si todo sale bien, después elimina las líneas donde abres y cierras
la conexión, así como la del ExecuteNonQuery, ya que salvo que
desees contar el numero de filas afectadas están de más. -Aún en
ese caso están de más, es mejor realizar un conteo de filas del
DataTable resultante.

' codigo...
' CnOledb.Open()
' cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
' CnOledb.Close()
' mas codigo...

Por otro lado, si posteriormente deseas realizar actualización de
datos en otro procedimiento: DAUsuarios.Update(...)
Pues entonces deberías declarar a nivel de clase al DataAdapter
DAUsuarios y el resto de los objetos involucrados: CnOledb y
cmOledb. Por lo que también tendrías que mover sus líneas Dispose
a algún otro procedimiento más adecuado.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"La verdadera medida de la riqueza es el no estar
demasiado cerca ni demasiado lejos de la pobreza."
- Lucio Anneo Séneca (2 a.C.-65 d.C); filósofo latino.



Geovanny Quirós C. wrote:
Ok, entiendo, pero como deberia quedar esta porcion de codigo para
hacerlo con un DataReader, si ves un poco mas abajo estoy tratando
de cargar el dataset llamado DSUsuarios.

La linea 78 es esta: cmOledb.ExecuteNonQuery()


Dim CnOledb As New OleDbConnection(OledbConnectionString)
Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)
cmOledb.Parameters.Add("@usuario", Txtusuario.Text)
Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
CnOledb.Open()
cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
CnOledb.Close()
cmOledb.Dispose()
CnOledb.Dispose()


"Ernesto Díaz" escribió en el mensaje
news:%
Por otro lado lo que comenta nuestro otro compañero, que comenta
que no debes de usar el ExecuteNonQuery, si quieres obtener los
datos de la consulta por que no usas un DataReader o un DataSet
para que alli te deposite el comando o el DataAdapter el
resultado de la consulta


"Ernesto Díaz" escribió en el mensaje
news:euiS4$
Oye cual es la linea 78, por otro lado veo que el query lo
quieres crear con un parametro que agregas, por que no pruebas
poniendo un query sin ese filtro, o si te esta generando bien
el query???

Saludos

"Geovanny Quirós C." escribió en el mensaje
news:
Ernesto:
Revisando la ejecución paso a paso:
La conexion pasa bien
En el momento de ejecutar la sentencia "
cmOledb.ExecuteNonQuery() " es cuando se cae y me envía el
mensaje de error, lo que no entiendo es porque me dice "Missing
operand."

He revisado el codigo muy detenidamente y no hay errores de
sintaxis.

Es mas el mismo codigo lo corro con la tabla convertida a
Acces y con el string de conexion para acces y todo sale bien,
la urgencia es que no puedo migrar las tablas a access porque
la aplicacion debe correr en linea.

Gracias mi amigo espero me puedas iluminar.



"Ernesto Díaz" escribió en el mensaje
news:%23T$
Oye Geovanny, la conexion te la esta ejecutando correctamente,
si te la abre y todo correcto??? es entonces cuando deseas
hacer la consulta cuando te pone el error???

Saludos

Ernesto Díaz

"Geovanny Quirós C." escribió en el
mensaje news:
Tengo el siguiente codigo con el que pretendo acceder a una
carpeta que contiene archivos DBF de Foxpro
Ernesto amablemente me pasó un String de Conexion que es el
que estoy probando en este momento.
Esto en Public Class...
Private OledbConnectionString = "Provider=VFPOLEDB.1;Data
Source=c:\codeas ;Mode=Share Deny None;Extended
Properties="";User ID="";Mask Password=False;Cache
Authentication=False;Encrypt Password=False;Collating
Sequence=MACHINE;"

Private DSUsuarios As New DataSet



Esto en mi Sub...

Dim CnOledb As New OleDbConnection(OledbConnectionString)

Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

cmOledb.Parameters.Add("@usuario", Txtusuario.Text)

Dim DAUsuarios As New OleDbDataAdapter(cmOledb)

CnOledb.Open()

cmOledb.ExecuteNonQuery()

DAUsuarios.Fill(DSUsuarios)

CnOledb.Close()

cmOledb.Dispose()

CnOledb.Dispose()



Cuando ejecuto la consulta se me cae en la linea 78 con el
siguiente error:

Missing operand.
Descripción: Excepción no controlada al ejecutar la solicitud
Web actual. Revise el seguimiento de la pila para obtener más
información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException:
Missing operand.

Error de código fuente:



Línea 76: Dim DAUsuarios As New
OleDbDataAdapter(cmOledb) Línea 77: CnOledb.Open()
Línea 78: cmOledb.ExecuteNonQuery()
Línea 79: DAUsuarios.Fill(DSUsuarios)
Línea 80: CnOledb.Close()



Esta bien que utilize el ExecuteNonquery()?

Cual podría ser el error?
Respuesta Responder a este mensaje
#9 Geovanny Quirós C.
27/02/2006 - 22:38 | Informe spam
Muchas gracias Willy, con esa explicacion si me quedó bien clarito.


"WillyXoft" escribió en el mensaje
news:
Con el Provedor de Datos .NET para OleDb, como para el de Odbc,
el orden en el que los objetos Parameter son agregados a la colección
Parameters -aún cuando sólo especificas nombre y valor se crea un objeto
Parameter para ser agregado a la colección- debe correponder con el
orden en el que disponen los parámetros correspondientes en la
consulta, o bien el orden en el que se declaran en un procedimiento
almacenado. Así pues el código que ejemplificaste debería funcionar.

Esta "restricción" de los Provedores de Datos OleDb y Odbc pienso que es
a causa de las limitaciones de algunos gestores soportados, pagando
justos por pecadores, de modo que se tiene que acatar incluso contra SQL
Server si se utiliza OleDb u Odbc. Mientras que con los Provedores de
Datos para .NET que son específicos para un gestor, como el SQLClient
para SQL Server o el ODPNET de/para Oracle, si soportan parámetros con
nombre -aunque con nomenclatura distinta: "@ParamName" para SQLClient, y
":ParamName" para ODPNET.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"Todos los ríos van al mar, pero el mar no se desborda."
- Proverbio chino.


Geovanny Quirós C. wrote:
Willy muchas gracias por el ejemplo y la solución, ahora ya puedo
continuar con mi proyecto:

Solo me queda una duda:
que pasa si tengo que enviar mas parametros en otras consultas, como
interpreta el VS el "?" y como sabe cual parametro corresponde a
cada cual?

ejemplo:


Dim cmOledb As New OleDb.OleDbCommand("SELECT * FROM mcobra01 WHERE
cta = ? and CodCredito= ?", CnOledb)
cmOledb.Parameters.Add("@cta", Txtusuario.Text)
cmOledb.Parameters.Add("@CodCredito", TxtCodCredito.Text)

"WillyXoft" escribió en el mensaje
news:
Trate de replicar tu caso, y usando "@ParamName" me arroja el mismo
error, pero al cambiarlo por "?" me funcionó sin problemas. Y es que
los parámetros con "nombre" sólo funcionan con SQL Server. En el
caso de OleDb Provider y Odbc Provider se deben usar los signos de
interrogación.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"El exceso es el veneno de la razón."
- Francisco de Quevedo y Villegas (1580-1645); escritor español.



Geovanny Quirós C. wrote:
Willy, hice los cambios que sugieres y me sigue dando el mimo error:
Missing operand
La verdad no se dónde está el misterio.


"WillyXoft" escribió en el mensaje
news:
Intenta cambiando esto:
Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

Por esto:
Dim cmOledb As New OleDbCommand("Select * from masoc01 where cta >>>>> ?", CnOledb)

Si todo sale bien, después elimina las líneas donde abres y cierras
la conexión, así como la del ExecuteNonQuery, ya que salvo que
desees contar el numero de filas afectadas están de más. -Aún en
ese caso están de más, es mejor realizar un conteo de filas del
DataTable resultante.

' codigo...
' CnOledb.Open()
' cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
' CnOledb.Close()
' mas codigo...

Por otro lado, si posteriormente deseas realizar actualización de
datos en otro procedimiento: DAUsuarios.Update(...)
Pues entonces deberías declarar a nivel de clase al DataAdapter
DAUsuarios y el resto de los objetos involucrados: CnOledb y
cmOledb. Por lo que también tendrías que mover sus líneas Dispose
a algún otro procedimiento más adecuado.

Saludos,
Willy Mejía
www.willyxoft.com.mx


"La verdadera medida de la riqueza es el no estar
demasiado cerca ni demasiado lejos de la pobreza."
- Lucio Anneo Séneca (2 a.C.-65 d.C); filósofo latino.



Geovanny Quirós C. wrote:
Ok, entiendo, pero como deberia quedar esta porcion de codigo para
hacerlo con un DataReader, si ves un poco mas abajo estoy tratando
de cargar el dataset llamado DSUsuarios.

La linea 78 es esta: cmOledb.ExecuteNonQuery()


Dim CnOledb As New OleDbConnection(OledbConnectionString)
Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)
cmOledb.Parameters.Add("@usuario", Txtusuario.Text)
Dim DAUsuarios As New OleDbDataAdapter(cmOledb)
CnOledb.Open()
cmOledb.ExecuteNonQuery()
DAUsuarios.Fill(DSUsuarios)
CnOledb.Close()
cmOledb.Dispose()
CnOledb.Dispose()


"Ernesto Díaz" escribió en el mensaje
news:%
Por otro lado lo que comenta nuestro otro compañero, que comenta
que no debes de usar el ExecuteNonQuery, si quieres obtener los
datos de la consulta por que no usas un DataReader o un DataSet
para que alli te deposite el comando o el DataAdapter el
resultado de la consulta


"Ernesto Díaz" escribió en el mensaje
news:euiS4$
Oye cual es la linea 78, por otro lado veo que el query lo
quieres crear con un parametro que agregas, por que no pruebas
poniendo un query sin ese filtro, o si te esta generando bien
el query???

Saludos

"Geovanny Quirós C." escribió en el mensaje
news:
Ernesto:
Revisando la ejecución paso a paso:
La conexion pasa bien
En el momento de ejecutar la sentencia "
cmOledb.ExecuteNonQuery() " es cuando se cae y me envía el
mensaje de error, lo que no entiendo es porque me dice "Missing
operand."

He revisado el codigo muy detenidamente y no hay errores de
sintaxis.

Es mas el mismo codigo lo corro con la tabla convertida a
Acces y con el string de conexion para acces y todo sale bien,
la urgencia es que no puedo migrar las tablas a access porque
la aplicacion debe correr en linea.

Gracias mi amigo espero me puedas iluminar.



"Ernesto Díaz" escribió en el mensaje
news:%23T$
Oye Geovanny, la conexion te la esta ejecutando correctamente,
si te la abre y todo correcto??? es entonces cuando deseas
hacer la consulta cuando te pone el error???

Saludos

Ernesto Díaz

"Geovanny Quirós C." escribió en el
mensaje news:
Tengo el siguiente codigo con el que pretendo acceder a una
carpeta que contiene archivos DBF de Foxpro
Ernesto amablemente me pasó un String de Conexion que es el
que estoy probando en este momento.
Esto en Public Class...
Private OledbConnectionString = "Provider=VFPOLEDB.1;Data
Source=c:\codeas ;Mode=Share Deny None;Extended
Properties="";User ID="";Mask Password=False;Cache
Authentication=False;Encrypt Password=False;Collating
Sequence=MACHINE;"

Private DSUsuarios As New DataSet



Esto en mi Sub...

Dim CnOledb As New OleDbConnection(OledbConnectionString)

Dim cmOledb As New OleDbCommand("Select * from masoc01 where
cta=@usuario", CnOledb)

cmOledb.Parameters.Add("@usuario", Txtusuario.Text)

Dim DAUsuarios As New OleDbDataAdapter(cmOledb)

CnOledb.Open()

cmOledb.ExecuteNonQuery()

DAUsuarios.Fill(DSUsuarios)

CnOledb.Close()

cmOledb.Dispose()

CnOledb.Dispose()



Cuando ejecuto la consulta se me cae en la linea 78 con el
siguiente error:

Missing operand.
Descripción: Excepción no controlada al ejecutar la solicitud
Web actual. Revise el seguimiento de la pila para obtener más
información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException:
Missing operand.

Error de código fuente:



Línea 76: Dim DAUsuarios As New
OleDbDataAdapter(cmOledb) Línea 77: CnOledb.Open()
Línea 78: cmOledb.ExecuteNonQuery()
Línea 79: DAUsuarios.Fill(DSUsuarios)
Línea 80: CnOledb.Close()



Esta bien que utilize el ExecuteNonquery()?

Cual podría ser el error?























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