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

 Consultas sql en C#

<< < (6/7) > >>

Laxair:
Cuando apreto el botón ahora se cierra el formulario cosa que antes no pasaba pero sigue sin escribir en la bd.

chenech:
Cuando me pasaba eso quitaba los try catch e iba poniendo MessageBox.Show("1"), MessageBox.Show("2"), etc entre las líneas para ver donde llegaba y donde se para. O bien ejecuta la aplicación en debug línea por línea a ver donde se para o da error.

Laxair:
Ya me funciono, faltaba convertir los tipos nada mas dejo el código por si a alguien le sirve:


--- 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\\******\\Desktop\\Personal.accdb\"";
            OleDbCommand cmd;


            string consultaSQL = "INSERT INTO InasistenciasJefatura (Legajo, Estado, Fecha, Cargo, Turno, Aviso) VALUES (@Legajo, @Estado, @Fecha, @Cargo, @Turno, @Aviso)";
            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.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();
                }
                catch (Exception excepcion)
                {
                    Console.Write(excepcion.Message);
                    Console.ReadLine();
                }

                conn.Close();


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

Laxair:
Otra pregunta, como hago si quisiera registrar solo aquellos legajos que empiezan con un determinado numero?
Yo pense algo asi:


--- Código: --- if (lector["Legajo"].ToString() == txtLeg.Text && txtLeg.Text.Substring(0,1)==3)
--- Fin del código ---

Pero me dice  Error   CS0019   Operator '==' cannot be applied to operands of type 'string' and 'int'   

EDIT: Agrego otra pregunta. Como hago para mostrar todos los registros de una base de datos acces en un textbox multilinea?


--- 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\\*******\\Desktop\\Personal.accdb\"";
            OleDbCommand comando;
            OleDbCommand comando2;
            OleDbCommand comando3;
            OleDbDataReader lector;
            OleDbDataReader lector2;
            OleDbDataReader lector3;

            string consultaSQL = "SELECT Legajo , Estado , Fecha , Cargo , Turno , Aviso FROM InasistenciasJefatura";
            string consultaSQL2 = "SELECT Legajo , Fecha , Estado , Hora , Aviso FROM InasistenciasBedel ";
            string consultaSQL3 = "SELECT Legajo , Fecha , Estado FROM InasistenciasSecretario ";
            comando = new OleDbCommand(consultaSQL, conn);
            comando2 = new OleDbCommand(consultaSQL2, conn);
            comando3 = new OleDbCommand(consultaSQL3, conn);
            try
            {
                conn.Open();
            }
            catch (Exception excepcion)
            {
                Console.Write(excepcion.Message);
                Console.ReadLine();
            }

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

                try
                {
                    lector = comando.ExecuteReader();
                    lector2 = comando2.ExecuteReader();
                    lector3 = comando3.ExecuteReader();
                    while (lector.Read())
                    {
                       
                            txtMostrar.Text = "\n" + lector.GetValue(0).ToString();
                            txtMostrar.Text += " - " + lector.GetValue(1).ToString();
                            txtMostrar.Text += " - " + lector.GetValue(2).ToString();
                            txtMostrar.Text += " - " + lector.GetValue(3).ToString();
                            txtMostrar.Text += " - " + lector.GetValue(4).ToString();
                            txtMostrar.Text += " - " + lector.GetValue(5).ToString();
                            txtMostrar.Text += "\r\n---------------------------------------------------------------------";
                        }
                            while (lector2.Read())

                            {
                                txtMostrar.Text += "\r\n" + lector2.GetValue(0).ToString();
                                txtMostrar.Text += " - " + lector2.GetValue(1).ToString();
                                txtMostrar.Text += " - " + lector2.GetValue(2).ToString();
                                txtMostrar.Text += " - " + lector2.GetValue(3).ToString();
                                txtMostrar.Text += " - " + lector2.GetValue(4).ToString();
                                txtMostrar.Text += " - " + lector2.GetValue(5).ToString();
                                         
                    }

                    while (lector3.Read())

                    {
                       
                        txtMostrar.Text += "\r\n" + lector3.GetValue(0).ToString();
                        txtMostrar.Text += " - " + lector3.GetValue(1).ToString();
                        txtMostrar.Text += " - " + lector3.GetValue(2).ToString();
           
                    }


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

                conn.Close();
             

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


Eso me muestra hasta dos registros de tablas distintas el tercero no lo muestra y si hay dos o mas registros en una misma tabla solo te muestra el ultimo.

chenech:
Al tratar el dato como string debes poner el número tres entre comillas.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa