CLR: .Net / Mono / Boo / Otros CLR > C#

 Consultas sql en C#

<< < (4/7) > >>

Laxair:
Holaaaaaaaaaaaaaaaaaaaaaaaaaaaaa alfin encontre lo que estaba mal gracias Chenech por la paciencia y la ayuda.
El error estaba en las comillas de :


--- Código: ---string consultaSQL = "SELECT Legajo FROM Personal WHERE Legajo = " + txtLegajo.Text + "";
--- Fin del código ---

no llevaba comillas simples.

chenech:
Vaya, bueno por lo menos funcionó.
Un saludo.

Laxair:
Tengo otra duda, ahora lo que quiero hacer es insertar datos desde los windows form a la bd tengo el siguiente codigo hasta ahora :


--- Código: ---private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection();
            conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =\"C:\\Users\\AsusB85M-G\\Desktop\\Personal.accdb\"";
            OleDbCommand cmd;
           

            string consultaSQL = "INSERT INTO InasistenciasJefatura (Legajo,Estado,Fecha,Cargo,Turno,Aviso) VALUES " + txtLeg.Text + ""+ txtEstado.Items + "" + txtFecha.Text +""+ Cargo.Items + ""+ txtTurno.Text  + "" + txtAviso.Text+ "" ;
            cmd = new OleDbCommand(consultaSQL, conn);
            cmd.Connection = conn;

            try
            {
                conn.Open();
            }
            catch (Exception excepcion)
            {
                Console.Write(excepcion.Message);
                Console.ReadLine();
            }

            if (conn.State == ConnectionState.Open)
            {

                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception excepcion)
                {
                    Console.Write(excepcion.Message);
                    Console.ReadLine();
                }

                conn.Close();


            }
        }
    }
}
--- Fin del código ---


Seguramente hay algún error en la consulta.


Ah y otra cosa si tengo mas de una tabla en la bd es necesario poner el nombre del archivo (Personal) y la tabla a usar? por ejemplo Personal.InasistenciasJefatura.

chenech:
aquí tienes un ejemplo de como lo hacía yo pasando los parámetros a la sentencia SQL, no debes ejecutar el Open() este es para consultas SELECT que devuelven resultado, para UPDATE e INSERT es con ExecuteNonQuery.

--- Código: ---                    sbQuery = new StringBuilder("");
                    sbQuery.Append("INSERT INTO Inventario VALUES(@PAlmacen, @PFecha, @PArticulo, @PUnidades)");
                    cmd.CommandText = sbQuery.ToString();
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@PAlmacen", tbAlmacen.Text);
                    cmd.Parameters.AddWithValue("@PFecha", dtFecha.Value.Date);
                    cmd.Parameters.AddWithValue("@PArticulo", tbArticulo.Text);
                    cmd.Parameters.AddWithValue("@PUnidades", dUnidades);
                    cmd.Connection = conn;
                    cmd.ExecuteNonQuery();

--- Fin del código ---

Laxair:
PAlmacen , PFecha , etc esos que son? son las columnas de la base de datos?

Y lo del Open(), no es que lo tengo que hacer siempre porque es para abrir la conexión?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa