Foros del Web » Programación para mayores de 30 ;) » .NET »

System.Data.OleDb.OleDbException was unhandled by user code

Estas en el tema de System.Data.OleDb.OleDbException was unhandled by user code en el foro de .NET en Foros del Web. Hola gente! Estoy trabajando en un website de .net en c#, y me da el siguiente error: System.Data.OleDb.OleDbException was unhandled by user code Message="No coinciden ...
  #1 (permalink)  
Antiguo 19/12/2006, 11:04
 
Fecha de Ingreso: noviembre-2006
Mensajes: 12
Antigüedad: 18 años, 2 meses
Puntos: 0
System.Data.OleDb.OleDbException was unhandled by user code

Hola gente! Estoy trabajando en un website de .net en c#, y me da el siguiente error:

System.Data.OleDb.OleDbException was unhandled by user code
Message="No coinciden los tipos de datos en la expresión de criterios."
Source="Microsoft JET Database Engine"
ErrorCode=-2147217913
StackTrace:
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(Comma ndBehavior behavior)
at System.Data.OleDb.OleDbCommand.ExecuteReader()
at Ficha.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\Optica\Ficha.aspx.cs:line 38
at System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Cal lback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


El código que tengo es:

OleDbConnection con;
OleDbCommand com;
OleDbDataReader dr;
int codigo;

try
{
codigo = (int)Session["codigo"];

}
catch { };

con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Inetpub\\wwwroot\\Optica\\App_Data\\bdo ptica.mdb");
com = con.CreateCommand();
com.CommandText = "select * from Clientes where codigo = '" + codigo + "'";
con.Open();
dr = com.ExecuteReader();
dr.Read();
TextBox1.Text = dr ["nombre"].ToString();


La base de datos Clientes contiene una serie de campos, de los cuales el campo codigo es entero y el resto de los campos son cadenas.
El error me da en la sentencia de dr = com.ExecuteReader(); ¿Alguien sabría decirme qué está mal?
Muchas Gracias!
  #2 (permalink)  
Antiguo 20/12/2006, 10:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 12
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: System.Data.OleDb.OleDbException was unhandled by user code

Hola, he descubierto que si en vez de poner en la sentencia de selección:
com.CommandText = "select * from Clientes where codigo = '" + codigo + "'"; pongo por ejemplo com.CommandText = "select * from Clientes where codigo = (Select MAX(codigo) From Clientes)"; funciona... aunque no sé muy bien cuál es el motivo.
  #3 (permalink)  
Antiguo 20/12/2006, 10:22
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Re: System.Data.OleDb.OleDbException was unhandled by user code

De casualidad el campo "codigo" no es de tipo Entero ???

porque veo que estás usando comillas en el criterio.. prueba de ésta forma:

Cita:
com.CommandText = "select * from Clientes where codigo = " + codigo;
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 20/12/2006, 11:40
 
Fecha de Ingreso: noviembre-2006
Mensajes: 12
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: System.Data.OleDb.OleDbException was unhandled by user code

Efectivamente! Ese era el problema! Y todo por utilizar la tecnica de copy paste de otra sentencia con un String... Muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:53.