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

conexion c# con postgres

Estas en el tema de conexion c# con postgres en el foro de .NET en Foros del Web. buen dia sres. Desarrolladores tengo un problema con esta conexion a pgsql. no se que esta sucediendo coloque un breakpoint en cada linea de codigo ...
  #1 (permalink)  
Antiguo 04/04/2016, 07:49
 
Fecha de Ingreso: diciembre-2014
Mensajes: 18
Antigüedad: 10 años
Puntos: 0
conexion c# con postgres

buen dia sres. Desarrolladores tengo un problema con esta conexion a pgsql. no se que esta sucediendo coloque un breakpoint en cada linea de codigo y entra en todas las lineas pero no me reconoe el usuario, no se si lo este haciendo mal o me falte algo ya coloque el
using npgsql;
e hice una clase con la cadena de conexion para llamar solo la cadena y nada mi conf de pgsql es exacta ya intente todo lo que mis conocimientos tienen estoy usando un proyecto de WTF y tambien tengo instalado lo mahapps para darle estilos metro y npgsql lo baje de Nuget no se si eso sirva como inf. para determinar que esta sucediendo. aqui dejo el fragmento de codigo... de ante mano muchas gracias con cualquier ayuda




Código:
       private void btnaceptar_Click(object sender, RoutedEventArgs e)
        {
            bool blnfound = false;
            
            NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;Port=5432; User Id=postgres;Password=1234;Database = systemBD");
            conn.Open();
            NpgsqlCommand cmd = new NpgsqlCommand("Select * from usuario where cod_usu = '" + txt1 + "' and con_usu = '" + txt2 + "' ", conn);
            NpgsqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                blnfound = true;
                modulos form = new modulos();
                form.Show();
                this.Hide();
            }
            if (blnfound == false)
                MessageBox.Show("Usuario o Contraseña Incorrecta", "Mensaje de Alerta", MessageBoxButton.OK);
            dr.Close();
            conn.Close();
        }
  #2 (permalink)  
Antiguo 04/04/2016, 08:11
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 11 meses
Puntos: 606
Respuesta: conexion c# con postgres

Sobre ese código se me ocurren varias cosas. De entrada:
- No se controlan excepciones
- No se hacen los dispose (o usings) de los objetos de BBDD.
- Estas usando parámetros directamente en el sql command, con lo que eres muy vulnerable a ataques de SQL Injection
- Estas usando variables (txt1 y txt2) que no se sabe de donde salen ni se validan antes de usar.

Fuera aparte de eso, has probado a lanzar la consulta a mano contra la base de datos? Que te devuelve?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 04/04/2016, 09:19
 
Fecha de Ingreso: diciembre-2014
Mensajes: 18
Antigüedad: 10 años
Puntos: 0
Respuesta: conexion c# con postgres

buen dia amigo primero muchas gracias por rsp. para responder a tus preguntas

-No se hacen los dispose (o usings) de los objetos de BBDD
si estoy usando using npgsql;
- parámetros directamente en el sql command, con lo que eres muy vulnerable a ataques de SQL Injectio
no conozco otra manera de hacer la consulta soy muy nuevo en c# esta cadena de conexion tambien la hice en una clase publica y en vista de que no me funciono trate de hacerla directa
-Estas usando variables (txt1 y txt2) que no se sabe de donde salen ni se validan antes de usar.
si tengo this.txt1, this.txt2 solo que sin el "this" tambien las reconoce.
-has probado a lanzar la consulta a mano contra la base de datos? Que te devuelve?
me devuelve el usuario y la clave
  #4 (permalink)  
Antiguo 04/04/2016, 09:53
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 11 meses
Puntos: 606
Respuesta: conexion c# con postgres

- Me refiero a este using, no al que referencia la librería.

- Prueba a usar SqlParameter para evitar ataques de Sql Injection.

- Me refería a que usas variables de las que el método desconoce su valor ni de donde vienen. Y si están a null? Y si se modifican desde otro lugar?

- Yo sigo pensando que la consulta no es correcta. Prueba a poner una traza (un messagebox, por ejemplo) que te muestre la consulta que se va a ejecutar. Recuerda que la tienes en la propiedad CommandText.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 04/04/2016, 10:11
 
Fecha de Ingreso: diciembre-2014
Mensajes: 18
Antigüedad: 10 años
Puntos: 0
Respuesta: conexion c# con postgres

ahh ok. no, ese using no lo estoy usando
ok mas tarde intentare con Sqlparameter, cuando logre que conecte de esta manera al menos
y no, no uso variables que esten en null ese es todo el codigo para la conexion.
y si amigo ya trate de hacer esa consulta y correctamente esta todo tal cual lo estoy enviando

Etiquetas: c#, postgres, wtf
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 06:43.