una - Obtener datos de Access en un cuadro de texto en C#haciendo clic en un botón
formularios en access (3)
Tengo una tabla en MS Access que contiene: (FoodID, FoodName, Price).
En C # tengo tres cuadros de texto (txtId, txtName, txtPrice) y un botón (btnSearch). Mi pregunta es que, en C # simplemente escribo FoodID en (txtId) y luego hago clic en el botón Buscar. Aparecerá FoodName y Price (desde el acceso a la tabla) en txtName y txtPrice por sí mismo. Obtuve el código fuente de usted, pero el error en (OleDbDataReader dr = cmd.ExecuteReader ();) su mensaje es "Tipo de datos no coinciden en la expresión de criterios".
Por favor resuelve este problema para mí. Este es el código fuente completo que obtuve para ti.
System.Data.OleDb.OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "your connection string";
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select FoodName, Price from tablename where FoodID = ''" + txtId + "'' ";
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();//error this line!
while(dr.Read())
{
txtName.Text = dr["FoodName"].ToString();
txtPrice.Text = dr["Price"].ToString();
}
dr.Close();
conn.Close();
Creo que el FoodId es de tipo Integer en la base de datos, pero aquí en la consulta que ha pasado como cadena, así que convierta la cadena en un entero.
cmd.CommandText = "select FoodName, Price from tablename where FoodID = ''" + int.Parse(txtId.Text) + "'' " ;
Parece que no hay problema con esta línea de código:
OleDbDataReader dr = cmd.ExecuteReader();// correct way
Creo que el problema está en:
cmd.CommandText = "select FoodName, Price from tablename where FoodID = ''" + txtId + "'' ";
Necesita usar .Text Propiedad del cuadro de texto
cmd.CommandText = "select FoodName, Price from tablename where FoodID = ''" + txtId.Text + "'' ";
Supongo que FoodID
es int. Debe eliminar las comillas simples en este caso
cmd.CommandText = "select FoodName, Price from tablename donde FoodID =" + txtId;
Aún mejor: usa parámetros:
using (var connection = new OleDbConnection("your connection string"))
using (var command = connection.CreateCommand())
{
command.CommandText = "select FoodName, Price from tablename where FoodID = @FoodID";
command.Parameters.AddWithValue("FoodID", int.Parse(txtId.Text));
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
txtName.Text = reader["FoodName"].ToString();
txtPrice.Text = reader["Price"].ToString();
}
}