Tengo una conexión ODBC para llegar a una base de datos de Oracle, la conexión abre (). Recibo un error de desbordamiento cuando intento acceder a los datos en la base de datos.

private void button4_Click(object sender, EventArgs e)
    {
        string MySelectString = "SELECT * FROM QE_AGENT.IMP_BANK WHERE BANK_LOT = '13120314' AND BANK_COMPTE = '1021'";
        string MyConnString = "info de connexion";

        OdbcConnection MyConnec = new OdbcConnection(MyConnString);

        MyConnec.Open();
        OdbcDataAdapter adapter = new OdbcDataAdapter(MySelectString, MyConnec);
        DataSet MyDataSet = new DataSet();

        adapter.Fill(MyDataSet);  <---- i get the error here                   
    }

1) Mientras buscaba, descubrí que esto podría ser un problema mayor, cuando intento conectar mi base de datos a través de la interfaz gráfica, solo puedo ver mis fuentes ODBC x86. Pero si hago la conexión dentro del código, funciona bien con la fuente x64.

2) He intentado con Datareader ahora lo intento con DataAdapter + DataSet pero obtengo el mismo error con ambos.

3) esta consulta SQL debe seleccionar solo 1 fila en mi base de datos, ¿puede el problema del desbordamiento deberse a que la conexión falló y devuelve nulo?

Cualquier sugerencia ? Gracias

EDITAR: Aquí están los detalles de la excepción

L'exception System.OverflowException s'est produite
HResult = 0x80131516 Mensaje = L'opération arithmétique a provoqué un dépassement de capacité. Fuente = System.Data Arborescence des appels de procédure:

en System.Data.Odbc.OdbcDataReader.FirstResult ()
en System.Data.Odbc.OdbcCommand.ExecuteReaderObject (CommandBehavior comportamiento, método String, needReader booleano, objeto [] methodArguments, SQL_API odbcApiMethod)
en System.Data.Odbc.OdbcCommand.ExecuteReaderObject (CommandBehavior comportamiento, método String, needReader booleano)
en System.Data.Odbc.OdbcCommand.ExecuteReader (comportamiento CommandBehavior)
en System.Data.Common.DbDataAdapter.FillInternal (conjunto de datos DataSet, DataTable [] tablas de datos, Int32 startRecord, Int32 maxRecords, String srcTable, comando IDbCommand, comportamiento CommandBehavior)
en System.Data.Common.DbDataAdapter.Fill (DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand comando, comportamiento CommandBehavior)
en System.Data.Common.DbDataAdapter.Fill (DataSet dataSet)
en Test.Form1.button4_Click (remitente de objeto, EventArgs e) en
C: \ Users \ sysnt2 \ documents \ visual studio 2017 \ Proyectos \ Prueba \ Prueba \ Form1.cs: línea 75
en System.Windows.Forms.Control.OnClick (EventArgs e)
en System.Windows.Forms.Button.OnClick (EventArgs e)
en System.Windows.Forms.Button.OnMouseUp (MouseEventArgs mevent)
en System.Windows.Forms.Control.WmMouseUp (Message & m, MouseButtons botón, Int32 clics)
en System.Windows.Forms.Control.WndProc (Mensaje & m)
en System.Windows.Forms.ButtonBase.WndProc (Mensaje & m)
en System.Windows.Forms.Button.WndProc (Mensaje & m)
en System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG & msg)
en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNa> tiveMethods.IMsoComponentManager.FPushMessageLoop
(IntPtr dwComponentID, motivo Int32, Int32 pvLoopData)
en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (Int32 motivo, contexto ApplicationContext)
en System.Windows.Forms.Application.ThreadContext.RunMessageLoop (Int32
motivo, contexto ApplicationContext) en Test.Program.Main () en C: \ Users \ sysnt2 \ documents \ visual studio
2017 \ Projects \ Test \ Test \ Program.cs: línea 19

-1
FistiPaul 24 oct. 2017 a las 10:45

2 respuestas

La mejor respuesta

Acabo de descubrir por qué no funcionó, la persona que instaló mi controlador ODBC instaló el x86 y lo llamó x64. Tuve que reinstalar todo y ahora funciona perfectamente.

Gracias aunque :)

0
FistiPaul 24 oct. 2017 a las 13:06

El posible motivo de su error podría ser que, una o más columnas en su tabla QE_AGENT.IMP_BANK podrían tener datos de Oracle con un tipo de datos que no se ajustan al conjunto de datos .Net.

0
Ranjani 24 oct. 2017 a las 08:28