Acabo de aprender a conectar C# y PostgresSQL.
Quiero INSERTAR datos de tb1(Textbox) y tb2 a la base de datos. Pero no sé cómo de código
Mi código anterior es SELECCIONAR de la base de datos.
este es mi código

private void button1_Click(object sender, EventArgs e)
    {
        bool blnfound = false;
        NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=admin123;Database=Login");
        conn.Open();
        NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM login WHERE name='" + tb1.Text + "' and password = '" + tb2.Text + "'",conn);
        NpgsqlDataReader dr = cmd.ExecuteReader();

        if (dr.Read())
        {
            blnfound = true;
            Form2 f5 = new Form2();
            f5.Show();
            this.Hide();
        }

        if (blnfound == false)
        {
            MessageBox.Show("Name or password is incorrect", "Message Box", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
            dr.Close();
            conn.Close();
        }
    }

Así que por favor me ayude el código.

OriginalEl autor user1479013 | 2012-06-28

1 Comentario

  1. 11

    Primero apagado, usted necesita utilizar el ExecuteNonQuery método en lugar de ExecuteReader ya que usted está ejecutando un INSERT en lugar de un SELECT declaración. Así, algo como:

    NpgsqlCommand cmd = new NpgsqlCommand("insert into table1 values(1, 1)", conn);
    cmd.ExecuteNonQuery();

    La ExecuteNonQuery método también devuelve el número de filas afectadas si eso es importante para usted.

    Segundo, es necesario utilizar parámetros SQL en lugar de construir una inseguro cadena SQL.

    Uso:

    cmd.Parameters.Add(new NpgsqlParameter("name", tb1.Text));
    cmd.Parameters.Add(new NpgsqlParameter("pw", tb2.Text));

    Para agregar un parámetro a su consulta. Usted puede ahora hacer referencia a ella en su instrucción INSERT con :name o :pw, por ejemplo:

    NpgsqlCommand cmd = new NpgsqlCommand("insert into login (Name, Password) values(:name, :pw)", conn);
    cmd.ExecuteNonQuery();

    Por último, usted podría estar interesado en el uso de un ORM lugar de la ejecución de raw instrucciones SQL. Me gustaría comprobar en el .NET Entity Framework o El Castillo De Registro Activo, que se construye en NHibernate. Estas librerías permiten consultar, actualizar, crear y borrar los datos en su base de datos sin necesidad de escribir las instrucciones de SQL involucrados. Es una gran manera de empezar, y simplemente su código bastante!

    También puede que desee echar un vistazo a Npgsql manual que tiene un montón de ejemplos de trabajo: manual.npgsql.org espero que te ayude
    Gracias por mencionar el Castillo de Registro Activo, no He oído hablar de él antes,

    OriginalEl autor Mike Christensen

Dejar respuesta

Please enter your comment!
Please enter your name here