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

 Consultas sql en C#

<< < (7/7)

Laxair:
Gracias chenech, y tenes idea de la segunda pregunta que hice para mostrar todos los registros de la bd?

EDIT: Ya esta solucionado :D
   
Necesito ayuda con este codigo:

--- Código: ---while (lector.Read())
                    {

                        if (lector["Legajo"].ToString() == txtLeg.Text && txtLeg.Text.Substring(0, 1) == "6" || txtLeg.Text.Substring(0, 1) == "3")
                        {
                           
                           
                                //if (lector["Cargo"].ToString() == Cargo.Text.ToString())

                                cmd.Parameters.AddWithValue("@Legajo", Convert.ToInt32(txtLeg.Text.ToString()));
                                cmd.Parameters.AddWithValue("@Estado", txtEstado.Text.ToString());
                                cmd.Parameters.AddWithValue("@Fecha", Convert.ToDateTime(txtFecha.Text.ToString()));
                                cmd.Parameters.AddWithValue("@Cargo", Cargo.Text.ToString());
                                cmd.Parameters.AddWithValue("@Turno", txtTurno.Text.ToString());
                                cmd.Parameters.AddWithValue("@Aviso", txtAviso.Text.ToString());
                                cmd.ExecuteNonQuery();
                            }
                        }
--- Fin del código ---

el if que esta comentado tiene problemas si lo pongo no entra nunca, Cargo en la bd es texto y Cargo en windows forms es un combobox, como hago?


EDIT:   
--- 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 cmdA;
            OleDbCommand cmdB;
            OleDbDataReader lector;

            string consultaSQLA = "INSERT INTO InasistenciasJefatura (Legajo, Estado, Fecha, Cargo, Turno, Aviso) VALUES (@Legajo, @Estado, @Fecha, @Cargo, @Turno, @Aviso)";
            string consultaSQLB = "SELECT Legajo,Cargo FROM Personal WHERE Legajo = @Legajo AND Cargo = @Cargo ";
            cmdA = new OleDbCommand(consultaSQLA, conn);
            cmdB = new OleDbCommand(consultaSQLB, conn);

            cmdA.Connection = conn;

            try
            {
                conn.Open();
            }
            catch (Exception excepcion)
            {
                MessageBox.Show(excepcion.Message);

            }

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

                try
                {

                    cmdB.Parameters.AddWithValue("@Legajo", Convert.ToInt32(txtLeg.Text.ToString()));
                    cmdB.Parameters.AddWithValue("@Cargo", Cargo.Text.ToString());

                    lector = cmdB.ExecuteReader();

                    while (lector.Read())
                    {
                        // Si el lector tiene valores significa que el legajo de la BD es == al del textBox y los cargos también son iguales

                        cmdA.Parameters.AddWithValue("@Legajo", Convert.ToInt32(txtLeg.Text.ToString()));
                        cmdA.Parameters.AddWithValue("@Estado", txtEstado.Text.ToString());
                        cmdA.Parameters.AddWithValue("@Fecha", Convert.ToDateTime(txtFecha.Text.ToString()));
                        cmdA.Parameters.AddWithValue("@Cargo", Cargo.Text.ToString());
                        cmdA.Parameters.AddWithValue("@Turno", txtTurno.Text.ToString());
                        cmdA.Parameters.AddWithValue("@Aviso", txtAviso.Text.ToString());
                        cmdA.ExecuteNonQuery();

                    }

                }

                catch (Exception excepcion)
                {
                    MessageBox.Show(excepcion.Message);
                }

                conn.Close();
                this.Close();

            }

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

Ahí esta la solución a lo que pregunte :D


Si alguien me puede decir como contar los registros de un determinado legajo en la base de datos para sacar una estadística estaría muy agradecido :D


Hola denuevo se me ocurrio el siguiente codigo pero al parecer esta mal :

--- Código: ---   string consultaSQLA = "SELECT Legajo FROM InasistenciasSecretario,  InasistenciasJefatura, InasistenciasDirector, InasistenciasBedel WHERE Legajo = " + txtLegajo.Text + ""; 
--- Fin del código ---

Quiero que comparar que el legajo de esas tablas (InasistenciasSecretario,  InasistenciasJefatura, InasistenciasDirector, InasistenciasBedel) sea igual al del textbox pero me dice esto: Puede que el campo 'Legajo' especificado haga referencia a más de una tabla de las mostradas en la cláusula FROM de la instrucción SQL.

chenech:
Hola, cuando un campo es igual en mas de una tabla tienes que usar alias.
Esta consulta no tiene sentido:

  string consultaSQLA = "SELECT Legajo FROM InasistenciasSecretario,  InasistenciasJefatura, InasistenciasDirector, InasistenciasBedel WHERE Legajo = " + txtLegajo.Text + "";

No haces JOIN de las tablas.

Para contar los registros usa SELECT COUNT(LEGAJO) FROM TABLA WHERE ...

Un saludo.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa