none
Como puedo pasar un dato de un formulario a otro? System.ArgumentException: 'Column 'Identificacion_Empleado' does not belong to table ' RRS feed

  • Pregunta

  • Buenas, hacienda un Proyecto me vi en la necesidad de asar un dato de un formulario a otro, me explico, hice un login, y quiero que los mismos datos que se ingrese en el login, se pase a un formulario Menu, o sea, si ingreso el usuario, los datos del usuario tenerlos en el menu.

    Lo estoy realizando en un Base de Datos Access, he visto lugares que me muestran el uso de una variable publica, pero al momento de ponerlo me resulta la exccepcion que que mi campo "Identificacion_Empleado" no existe, especificamente la excepcion System.ArgumentException: 'Column 'Identificacion_Empleado' does not belong to table .'

    //Este es el codigo del Login

     public static string cuenta_actual = "";
    
            private void btn_Ingresar_Click(object sender, EventArgs e)
            {
    
                DataTable dt = Consultas.ObtenerRegistros(tbx_Usuario.Text, tbx_Clave.Text);
    
                string account = dt.Rows[0]["Nombre_Usuario"].ToString().Trim();
                string pass = dt.Rows[0]["Clave"].ToString().Trim();
                cuenta_actual = dt.Rows[0]["Identificacion_Empleado"].ToString().Trim();
    
                if (dt.Rows.Count > 0)
                { 
    
                    Formu_Menu men = new Formu_Menu();
                    Formu_Login log = new Formu_Login();
    
                    log.Hide();
                    men.Show();
                }
                else
                {
                    MessageBox.Show("Acceso Denegado");
                }
    
            }
    //Por si acaso, este es el codigo de la clase Consultas
    public static DataTable ObtenerRegistros(string codigo)
            {
                string connstring = @"Provider=Microsoft.ACE.OLEDB.12.0;
    						Data Source=C:\\Users\\Alejandro\\Desktop\\Visual Studio\\C#\\GMDealer\\GMDealer\\BD_DealerSolution.accdb";
                OleDbConnection conx = new OleDbConnection(connstring);
    
                string consulta = @"select Nombre_Usuario, Clave from TB_Empleado where Id_Empleado = @id";
    
    
    
                DataTable dt = new DataTable();
                OleDbCommand cmd = new OleDbCommand(consulta, conx);
                cmd.Parameters.AddWithValue("@id", codigo);
                
    
                OleDbDataAdapter dapter = new OleDbDataAdapter(cmd);
                dapter.Fill(dt);
    
                return dt;
            }
    
            public static DataTable ObtenerRegistros(string usuario, string clave)
            {
                string connstring = @"Provider=Microsoft.ACE.OLEDB.12.0;
    						Data Source=C:\\Users\\Alejandro\\Desktop\\Visual Studio\\C#\\GMDealer\\GMDealer\\BD_DealerSolution.accdb";
                OleDbConnection conx = new OleDbConnection(connstring);
    
                string consulta = @"select Nombre_Usuario, Clave from TB_Empleado where Nombre_Usuario= @usuario
    					and Clave= @clave";
    
    
    
                DataTable dt = new DataTable();
                OleDbCommand cmd = new OleDbCommand(consulta, conx);
                cmd.Parameters.AddWithValue("@usuario", usuario);
                cmd.Parameters.AddWithValue("@clave", clave);
    
                OleDbDataAdapter dapter = new OleDbDataAdapter(cmd);
                dapter.Fill(dt);
    
                return dt;
            }

    Aprecio mucho toda la ayuda posible, cualquier mejora que se pueda aplicar y cualquier sugerencia. Saludos

    martes, 27 de noviembre de 2018 13:37

Todas las respuestas

  • Convendría que señalaras sobre el código fuente cuál es la línea exacta en la que te sale el error 'Column 'Identificacion_Empleado' does not belong to table .' En la parte de código que has mostrado el único sitio donde podría ocurrir es en dt.Rows[0]["Identificacion_Empleado"]. La razón de que esto ocurra es que dt no tiene una columna que se llame "Identificacion_Empleado". Y eso ocurre porque en ObtenerRegistro ejecutas una Select que no tiene ninguna columna que se llame así. La Select solo devuelve Nombre_Usuario y Clave, pero no Identificacion_Empleado.

    Nótese que esto no tiene nada que ver con el tema de pasar de un formulario a otro, es una mera cuestión de que envías una consulta que no devuelve la columna deseada. Esto fallará siempre con independencia del formulario o formularios que intervengan en esta operación.

    martes, 27 de noviembre de 2018 18:36