• Viernes 24 de Mayo de 2019, 18:11

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Laxair

Páginas: [1]
1
C# / Re:Consultas sql en C#
« en: Domingo 11 de Diciembre de 2016, 17:09 »
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: [Seleccionar]
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();
                            }
                        }

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: [Seleccionar]
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();

            }

        }

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: [Seleccionar]
   string consultaSQLA = "SELECT Legajo FROM InasistenciasSecretario,  InasistenciasJefatura, InasistenciasDirector, InasistenciasBedel WHERE Legajo = " + txtLegajo.Text + ""; 
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.


2
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 23:06 »
Otra pregunta, como hago si quisiera registrar solo aquellos legajos que empiezan con un determinado numero?
Yo pense algo asi:

Código: [Seleccionar]
if (lector["Legajo"].ToString() == txtLeg.Text && txtLeg.Text.Substring(0,1)==3)
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: [Seleccionar]
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();
             

            }
        }


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.

3
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 21:21 »
Ya me funciono, faltaba convertir los tipos nada mas dejo el código por si a alguien le sirve:

Código: [Seleccionar]
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();


            }
        }
    }
}


4
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 20:16 »
Cuando apreto el botón ahora se cierra el formulario cosa que antes no pasaba pero sigue sin escribir en la bd.

5
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 18:28 »
En el mensaje anterior te puse el código ya había cambiado todo.

EDIT:   
Código: [Seleccionar]
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+ "" ;
            string consultaSQL = "INSERT INTO InasistenciaJefatura (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", txtLeg.Text);
                    cmd.Parameters.AddWithValue("@Estado", txtEstado.Items);
                    cmd.Parameters.AddWithValue("@Fecha", txtFecha.Text);
                    cmd.Parameters.AddWithValue("@Cargo", Cargo.Items);
                    cmd.Parameters.AddWithValue("@Aviso", txtAviso.Text);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception excepcion)
                {
                    Console.Write(excepcion.Message);
                    Console.ReadLine();
                }

                conn.Close();


            }

6
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 18:12 »
Lo puse de la siguiente forma:

Código: [Seleccionar]
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+ "" ;
            string consultaSQL = "INSERT INTO Inventario (Legajo, Estado, Fecha, Cargo, Turno, Aviso) VALUES(@Legajo, @Estado, @Fecha, @Cargo, @Turno, @Aviso)";
            cmd = new OleDbCommand(consultaSQL, conn);
            cmd.Connection = conn;
            cmd.Parameters.AddWithValue("@Legajo", txtLeg.Text);
            cmd.Parameters.AddWithValue("@Estado", txtEstado.Items);
            cmd.Parameters.AddWithValue("@Fecha", txtFecha.Text);
            cmd.Parameters.AddWithValue("@Cargo", Cargo.Items);
            cmd.Parameters.AddWithValue("@Aviso", txtAviso.Text);
            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();


            }

Y no funciona, si en la bd hay varias tablas hay que poner el nombre del archivo .Nombre_de_tabla_a_usar  o con solo poner el nombre de la tabla tendría que funcionar?

7
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 17:28 »
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?

8
C# / Re:Consultas sql en C#
« en: Sábado 10 de Diciembre de 2016, 16:07 »
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: [Seleccionar]
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();


            }
        }
    }
}


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.

9
C# / Re:Consultas sql en C#
« en: Viernes 9 de Diciembre de 2016, 22:33 »
Holaaaaaaaaaaaaaaaaaaaaaaaaaaaaa alfin encontre lo que estaba mal gracias Chenech por la paciencia y la ayuda.
El error estaba en las comillas de :

Código: [Seleccionar]
string consultaSQL = "SELECT Legajo FROM Personal WHERE Legajo = " + txtLegajo.Text + "";
no llevaba comillas simples.

10
C# / Re:Consultas sql en C#
« en: Viernes 9 de Diciembre de 2016, 21:53 »
Puse en el else que se abriera el segundo formulario y nada, la base de datos esta con datos ya, y puse el mismo legajo que aparece en ella.

11
C# / Re:Consultas sql en C#
« en: Viernes 9 de Diciembre de 2016, 20:53 »
Bueno lo que hice fue hacer un bloque try-catch :

Código: [Seleccionar]
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\"";
            StringBuilder sbQuery = new StringBuilder();
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataReader lector;

            string consultaSQL = "SELECT Legajo FROM Personal WHERE Legajo = " + txtLegajo.Text + "'";
            cmd.CommandText = sbQuery.ToString();
            cmd.Connection = conn;

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

            if (conn.State == ConnectionState.Open)
            {
               
                try
                {
                    lector = cmd.ExecuteReader();
                    while (lector.Read())
                    {
                        if (lector["Legajo"].ToString() == txtLegajo.Text)
                        {
                            Form2 segundo = new Form2();
                            segundo.ShowDialog();
                        }
                    }
                }
                catch (Exception excepcion)
                {
                    Console.Write(excepcion.Message);
                    Console.ReadLine();
                }

                conn.Close();

            }
        }
    }
}

Al primer if entra el de  if (conn.State == ConnectionState.Open) pero el segundo donde se desea comparar parece que no porque no me abre el formulario.

12
C# / Re:Consultas sql en C#
« en: Viernes 9 de Diciembre de 2016, 18:14 »
No entendí, luego de cual new? Y la declaración te referís a cadconexion?

13
C# / Re:Consultas sql en C#
« en: Viernes 9 de Diciembre de 2016, 16:58 »
Me tira error el reader, dice que requiere una conexión abierta y disponible, pero ahí en la imagen creo que la tengo abierta.

14
C# / Re:Consultas sql en C#
« en: Viernes 9 de Diciembre de 2016, 16:02 »
Ese código que pusiste iría en el form? mas precisamente en el botón que tiene el formulario o en otra parte? Y otra cosa ese codigo se puede hacer con OledbConnection?
Y OleDbDataReader es lo mismo que IDataReader ???
Y una ultima cosa no entendi lo de asignar el string de conexion a conn  esta seria la ruta:   Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\*******\Desktop\Personal.accdb

15
C# / Re:Consultas sql en C#
« en: Jueves 8 de Diciembre de 2016, 20:48 »
Mil perdones , no es visual basic es visual studio 2015.

16
C# / Re:Consultas sql en C#
« en: Jueves 8 de Diciembre de 2016, 19:04 »
Si el paréntesis fue error de tipeo, y lo otro no se como hacer la condición, osea yo quiero que si lo que pongo en el textbox es igual a lo que esta en la columna Legajo se abra el segundo formulario.Como debería hacer?

17
C# / Consultas sql en C#
« en: Jueves 8 de Diciembre de 2016, 16:32 »
Muy buenas tardes, estoy haciendo un programa que registra novedades como por ejemplo :
a.   La fecha.
b.   El empleado.
c.   Si se trata de inasistencia, llegada tarde o retiros anticipado.
d.   Si ha sido con aviso previo o no.
e.   Si se trata de módulos profesor, qué horas de la jornada están afectadas (las horas se numeran de la 1ª a la 9ª). Ejemplo: 05/10/16 – Ing. Gómez, Carlos – Ausente (Sin Aviso) – 1ª hora.
f.   Si se trata de cargos, el tipo del mismo. Ejemplo: 05/10/16 – Perré, Adrián – Retiro Anticipado (Con Aviso) – Cargo de Bedel.

Lo estoy haciendo con Windows Forms en visual basic 2015, y tengo los datos en una bd hecha en access, el principal problema que tengo es que nose como comparar lo ingresado en un textbox con un dato de la base de datos, por ejemplo: Ingreso un legajo en el textbox y quiero compararlo con la columna de legajos en la bd y si son iguales hacer alguna otra cosa.


Intente con este codigo pero tiene errores de sintaxis y me dice que txtLegajo es inaccesible por el nivel de protección.
Código: [Seleccionar]
string comando = "SELECT * FROM Personal WHERE Legajo LIKE'" + txtLegajo.text + '");

Desde ya muchas gracias.



EDIT:         Hola denuevo, le hice unos retoques al codigo me quedo asi:
   
Código: [Seleccionar]
private void button1_Click(object sender, EventArgs e)
        {
            string comando = "SELECT * FROM Personal WHERE Legajo LIKE'" + txtLegajo.Text + "')";
            if (comando)
            {
                Form2 segundo = new Form2();
                segundo.ShowDialog();
            }

me dice que no se puede convertir de string a bool, como hago?
Y otra cosa lo de la conexión con la bd donde la hago? en una clase aparte o dentro del mismo form.

Páginas: [1]