C sharp - Checkeo Código

 
Vista:

Checkeo Código

Publicado por John Ewan (7 intervenciones) el 28/11/2011 10:39:32
Hola, estoy empezando con C# y con Visual Studio 2010 y estoy modificando una aplicación que ya había empezado otra persona y no entiendo muy bien este código, alguien me podría dar una orientación...gracias


public bool compruebaLlavePrimaria(string consulta,string campoComprobacion)
{
bool existe;
MySqlCommand qery = new MySqlCommand(consulta, conexion);
MySqlDataReader reader = qery.ExecuteReader();
reader.Read();

try{
string a=reader[campoComprobacion].ToString();
existe = true;
}catch(Exception ){
existe = false;
}
reader.Close();
return existe;

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Checkeo Código

Publicado por roger (12 intervenciones) el 28/11/2011 13:23:28
Recibe una consulta y un campo para verificar si el registro consultado existe en la base de datos.
A mi parecer sobra el codigo del reader.Read(); para abajo, bastaria con

if(reader.Read())
{
existe = true;
}
return existe;

Tienes alguna duda con alguna seccion especifica???

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Checkeo Código

Publicado por roger (12 intervenciones) el 28/11/2011 13:39:13
aaaa, y desde luego, hay que cerrar el reader

if(reader.Read())
{
existe = true;
}
reader.Close();
return existe;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Checkeo Código

Publicado por John Ewan (7 intervenciones) el 29/11/2011 09:29:37
Hola roger, en primer lugar muchas gracias por la contestación.

Entonces corrigeme si me equivoco, en el qery se guarda la consulta y con el qery.ExecuteReader() se ejecut, y el resultado se guarda en el reader. Y con el reader.Read() miramos haber si hay datos devueltos.Entonces ¿para que queremos el campo campoComprobación?. ¿No bastaría solo con poner la consulta?

La forma con la que se llama a esta función es la siguiente

compruebaLlavesPrimarias("select emp_ext_nif from empresa_externa where emp_ext_nif='" + TextBoxNif.Text + "', "emp_ext_nif",)
En el cual pasas a la función la consulta con el campo que luego vuelves a poner, cosa que es redundante. Supongo que la solución que tu has puesto corrige esto porque no usas en ningún momento el parametro campoComprobación.

Otra duda:
había modificado la función porque había puesto dos claves primarias en la misma tabla y quería comprobar que no hubiera ningún registro ya con esas dos claves primarias.

Es este, ¿le puedes echar un vistazo rápido?:

public bool compruebaLlavesPrimarias(string consulta, string campoComprobacion1,string campoComprobacion2)
{
bool existe;
MySqlCommand qery = new MySqlCommand(consulta, conexion);
MySqlDataReader reader = qery.ExecuteReader();
reader.Read();

try
{
string a = reader[campoComprobacion1].ToString();
string b = reader[campoComprobacion2].ToString();
existe = true;
}
catch (Exception)
{
existe = false;
}
reader.Close();
return existe;

}

Que al hilo de lo dicho anteriormente, ¿aquí también sobrarían los dos campos pasados como parámetros y con la consulta bastaría?

De nuevo, graicas igualmente por la contestación.

Visita: http://laoficinadelcodigo.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar