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

Ejecutar Query en C# contra MySQL (y mostrar sus datos)

Estas en el tema de Ejecutar Query en C# contra MySQL (y mostrar sus datos) en el foro de .NET en Foros del Web. Hola a todos, Estoy intentando ejecutar una query desde un winform de Visual Studio 2005 (usando C#) contra un servidor remoto de MySQL. Lo estoy ...
  #1 (permalink)  
Antiguo 29/09/2009, 09:01
 
Fecha de Ingreso: agosto-2009
Mensajes: 104
Antigüedad: 14 años, 9 meses
Puntos: 1
Ejecutar Query en C# contra MySQL (y mostrar sus datos)

Hola a todos,

Estoy intentando ejecutar una query desde un winform de Visual Studio 2005 (usando C#) contra un servidor remoto de MySQL.
Lo estoy haciendo con una conexión ODBC (usando el "mysql-connector-odbc-5.1") porque no puedo hacerlo con el conector específico de MySQL para .Net.

Código:
System.Data.Odbc.OdbcConnection conexion = new OdbcConnection();
conexion.ConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=SCIACA;Database=mvactual; 
User=root;Password=password;Option=3;";
conexion.Open();

String sql;
sql  = "select * from tbTags";
//sql = "INSERT INTO tbTags (IDTag, Nombre, Descripcion) VALUES (1880, 'eee', 'fff')";
System.Data.Odbc.OdbcCommand comando = new OdbcCommand(sql,conexion);
System.Data.Odbc.OdbcDataReader resultadoSQL = comando.ExecuteReader();
Despues de ejecutar la consulta, compruebo que se ejecuta bien y en efecto, lo hace bien porque veo que las propiedades FieldCount y recordAffected del odbcDataReader (resultadoSQL) tienen los valores correctos.
Pero el problema que tengo es que no se como acceder a los datos (del resultado de la consulta), estoy buscando algo como Fields(i).Value o algo similar... Y tambien la posibilidad de desplazarme por las diferentes filas de la consulta ejecutada, como si de un recordset se tratase con métodos como el MoveFirst, MoveNext,...

¿Alguien sabe como mostrar estos datos?

Muchas gracias.

Un saludo.
  #2 (permalink)  
Antiguo 29/09/2009, 11:33
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Ejecutar Query en C# contra MySQL (y mostrar sus datos)

resultadoSQL.Read() para avanzar el puntero y leer

y el objeto tiene una variedad de métodos para extraer datos como:

resultadoSQL.GetString[int campo];

además estas haciendo un insert y los inserts no devuelven resultados, sólo datos de modificación o addicion
  #3 (permalink)  
Antiguo 29/09/2009, 12:59
 
Fecha de Ingreso: septiembre-2009
Ubicación: San Juan
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ejecutar Query en C# contra MySQL (y mostrar sus datos)

hola mi amigo, mira también lo puedes hacer de forma de acceso desconectado, almacenando en una tabla los registros resultantes:

DataTable Tabla = new DataTable();

OdbcConnection Conexion = new OdbcConnection();
Conexion.ConnectionString = cadenadeConexion;
Conexion.Open();
OdbcDataAdapter daConsulta = new OdbcDataAdapter(sql , Conexion);
daConsulta.Fill(Tabla);
con esto almacenas en una tabla los registros, para acceder a cada uno de ellos:

Tabla.Rows[fila][columna].

Espero que te sirva. :)
  #4 (permalink)  
Antiguo 29/09/2009, 13:00
 
Fecha de Ingreso: septiembre-2009
Ubicación: San Juan
Mensajes: 9
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ejecutar Query en C# contra MySQL (y mostrar sus datos)

Me olvide de decirte que este ejemplo de código lo adapte de un trabajo que hice, para que funcionara con Odbc. :)
  #5 (permalink)  
Antiguo 07/10/2009, 04:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 104
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Ejecutar Query en C# contra MySQL (y mostrar sus datos)

Ok, Muchas gracias. Parece que funciona bien.
Por otro lado he leido que MySQL distribuye un controlador para acceso a la BD dede .NET.
¿Sabeis si ese controlador es mejor que el ODBC?. ¿El ODBC es potente o es más aconsejable usar otros métodos?

Muchas gracias.

Un saludo.
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:45.