
09/06/2009, 11:24
|
| | Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años, 9 meses Puntos: 1 | |
Respuesta: Duda en instruccion en MySql Hola Buceador23!! Muchas gracias por tu ayuda! Te explico tengo un textbox donde introduzco cuatro numeros que se pasan a una variable Codigo hasta ahi bien. Pero despues quiero que con una sentencia Mysql me represente el nombre de los lectores (Nombre del lector) , en un gridview , que estan asociados a las series de numeros (TagId) que empiezan por los 4 digitos que escribi en el textbox.
TagId ----------------------->Nombre del lector
TagId ----------------------->Nombre del lector
TagId ----------------------->Nombre del lector
El codigo de mi programa sería este:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using MySql.Data;
namespace Consulta3
{
class ClsUtil {
public static void SoloNumeros(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= 48) && (e.KeyChar <= 57))
e.Handled = false;
//Acepta Borrador y Enter
else if ((e.KeyChar == 8) || (e.KeyChar == 13))
e.Handled = false;
else
{
e.Handled = true;
}
}
}
public partial class Form1 : Form
{
private DataSet bdl;//DataSet de datos
private DataTable tabla;//Tabla que almacena datos
private MySqlDataAdapter adaptador;//Objeto que sirve para comunicar al dataset con el DBMS
private MySqlConnection conn;//Objeto que realiza la conexion con el DBMS
private MySqlCommand cmd;//Objeto para la ejecucion de sentencias SQ
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
bdl = new DataSet("singularity");
tabla = new DataTable("eventrecord");
conn = new MySqlConnection("Database=singularity;Data Source=localhost;User Id=root;Password=825200");
cmd = new MySqlCommand("Sentencia SQL", conn);
adaptador = new MySqlDataAdapter(cmd);
}
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
ClsUtil.SoloNumeros(textBox, e);// con esto ya tendriamos la verificacion de solo numeros
}
string Codigo;
private void button1_Click(object sender, EventArgs e)
{
Codigo = textBox.Text.Trim();
conn.Open();//Abre la conexion
if (bdl.Tables.Count == 0)
{
cmd.CommandText = " SELECT IFNULL(Substring(eventrecord.tagId,1,4),'') WHERE tagId='" + Codigo + "' ";
adaptador.Fill(tabla);
bdl.Tables.Add(tabla);
}
else
{
bdl.AcceptChanges();
adaptador.Update(bdl, "eventrecord");
}
dataGridView1.DataSource = bdl.Tables["eventrecord"];
dataGridView1.Update();
conn.Close();//Cierra la conexion
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
bdl = new DataSet("singularity");
tabla = new DataTable("eventrecord");
conn = new MySqlConnection("Database=singularity;Data Source=localhost;User Id=root;Password=825200");
cmd = new MySqlCommand("Sentencia SQL", conn);
adaptador = new MySqlDataAdapter(cmd);
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message, "Error al intentar conectarse", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
Logicamente habria que cambiar la sentencia de MySql pero es ahi donde tengo la duda. A ver si me puedes ayudar . |