Definir variables para realizar una consulta a BD

Tengo el siguiente código y el error que me sale es que no esta definido la variable (pat) código Ej.
string pat= TextBox1.Text;
DataSet ds = new DataSet();
SqlConnection cn = new SqlConnection("server=jportillo;user id=sa;password='';database=abog");
SqlDataAdapter da = new SqlDataAdapter("select * from Persona Where Apepat Like pat",cn);
da.Fill(ds, "Persona");
El problema es que no reconoce la variable pat en la consulta o es que esta mal definido en la consulta

1 Respuesta

Respuesta
1
Cuando le dí a enviar perdí la respuesta, así que te lo escribiré otra vez, espero explicarme bien.
La cuestión es que no puedes pretender que la Base de Datos opere con una variable que no es propia de ella sino del programa.
Cuando haces...
SqlDataAdapter da = new SqlDataAdapter("select * from Persona Where Apepat Like pat",cn);
estás mandando a la Base de Datos la instrucción...
select * from Persona Where Apepat Like pat
Como si lo ejecuatases desde cualquier programa o creases una consulta, es lógico que la base de datos te pregunte por la variable "pat" ya que no está definida en la Base de Datos.
Lo que se debe hacer es crear la consulta que deseas en tiempo de ejecución en el programa y pasársela a la Base de Datos, es decir, añadir el contenido de la variable pat a la consulta a realizar...
SqlDataAdapter da = new SqlDataAdapter("select * from Persona Where Apepat Like " + pat,cn);
Concatenar cadenas.
Aunque esto no es suficiente, ya que cuando utilizas texto dentro de una consulta siempre va entre comillas simples ¿no? Pues bien, esto quedaría tan que así:
SqlDataAdapter da = new SqlDataAdapter("select * from Persona Where Apepat Like '" + pat + "'",cn);
Espero haberme explicado, si te quedase alguna duda o no hubieses entendido algo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas