none
el OleDbDataAdapter da = new OleDbDataAdapter(com2); me da = null RRS feed

  • Pregunta

  • Hola, disculpen que los moleste, me sucede que debo llenar un gridview, pero al ejecutar, no me llena el GridView, pero tampoco me da Error.......Sii, el OleDbDataAdapter da = new OleDbDataAdapter(com2); me da = null...........a continuación, les dejo el código......si se logra ver el problema, les agradecería si me lo hacen saber................. besos, abrazos, nos vemos,.......

    private void Leer()
            {
                string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                using (OleDbConnection cnn = new OleDbConnection(cadenaConexion))
                {
    		cnn.Open();
    
            string query1 = string.Empty;
    		query1 = "SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria";
    		OleDbCommand com1 = new OleDbCommand(query1, cnn); 
    		com1.Parameters.AddWithValue("@idCurso", Convert.ToInt32(ViewState["idCurso"]));
    		com1.Parameters.AddWithValue("@idMateria", Convert.ToInt32(ViewState["idMateria"]));
    		int idCursoMateria = Convert.ToInt32(com1.ExecuteScalar());
    		ViewState["idCursoMateria"] = idCursoMateria;
    
            string query2 = string.Empty;
            query2 = "SELECT A.Dni, A.Apellido, A.Nombre, amc.id_alumMatCurso FROM AlumMatCursos amc INNER JOIN Alumno A ON amc.Id_Alumno = A.Id_Alumno WHERE amc.id_alumMatCurso = @idcurMat";
    		OleDbCommand com2 = new OleDbCommand(query2,cnn);
    		com2.Parameters.AddWithValue("@idcurMat", idCursoMateria);         
    		
    		OleDbDataAdapter da = new OleDbDataAdapter(com2);
    		DataTable dt = new DataTable();
    		da.Fill(dt);
    		
    		GridCargaAsistencia.DataSource = dt;
    		GridCargaAsistencia.DataBind();
    
    	        }
            }
    Nos vemos........
    • Cambiado Karen Malagón miércoles, 19 de agosto de 2015 0:03 Programming with Access
    miércoles, 12 de agosto de 2015 20:43

Todas las respuestas

  • hola

    que base de datos estas usando? es sql server

    si ejecutas la query en el management poniendo un valor en reemplazo del parametro puede ver que obtienes registros ?

    SELECT A.Dni, A.Apellido, A.Nombre, amc.id_alumMatCurso FROM AlumMatCursos amc INNER JOIN Alumno A ON amc.Id_Alumno = A.Id_Alumno WHERE amc.id_alumMatCurso = <aqui reemplazas>

    en alguna tool que uses para administrar la db podrias validar que obtienes registros que cargar en el grid

    igual me parece raro que obtengas un null, a lo sumo el datatable estara vacio sin registros

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 12 de agosto de 2015 20:48
  • porque no evaluas crear una sola consulta, el dato intermedio no lo necesitas

    private void Leer()
    {
    	string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    	using (OleDbConnection cnn = new OleDbConnection(cadenaConexion))
    	{
    		cnn.Open();
    
    		string query = "SELECT A.Dni, A.Apellido, A.Nombre, amc.id_alumMatCurso 
    							FROM  Alumno A  
    							INNER JOIN AlumMatCursos amc ON amc.Id_Alumno = A.Id_Alumno 
    							INNER JOIN CursosMaterias cm ON amc.id_alumMatCurso = cm.id_cursoMateria
    							WHERE  cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria";
    					
    		OleDbCommand com = new OleDbCommand(query,cnn);
    		com.Parameters.AddWithValue("@idCurso", Convert.ToInt32(ViewState["idCurso"]));
    		com.Parameters.AddWithValue("@idMateria", Convert.ToInt32(ViewState["idMateria"]));      
    
    		OleDbDataAdapter da = new OleDbDataAdapter(com);
    		DataTable dt = new DataTable();
    		da.Fill(dt);
    
    		GridCargaAsistencia.DataSource = dt;
    		GridCargaAsistencia.DataBind();
    
    	}
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 12 de agosto de 2015 20:56
  • Hola, Leandro, es acces la Base de Datos........Abrazos...
    jueves, 13 de agosto de 2015 0:54
  • Hola, Leandro, de esta forma me da el sig. Error: "Error de sintaxis (falta operador) en la expresión de consulta '='

    string

    query = "SELECT A.Dni, A.Apellido, A.Nombre, amc.id_alumMatCurso FROM Alumno A INNER JOIN AlumMatCursos amc ON amc.Id_Alumno = A.Id_Alumno INNER JOIN CursosMaterias cm ON amc.id_alumMatCurso = cm.id_cursoMateria WHERE cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria";

    Gracias......

    jueves, 13 de agosto de 2015 0:59
  • la verdad es que no veo ningun error en la query

    si pones la consulta en Ms Access y le asignas valores a los parametros, marca el mismo error?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 13 de agosto de 2015 1:11
  • Hola GuilloFerrero,

    Si tu gestor de base de datos es MS-Access usa marcadores de parámetro de posición, ello deberás indicar con un signo de interrogación

    query = "SELECT A.Dni, A.Apellido, A.Nombre, amc.id_alumMatCurso FROM Alumno A INNER JOIN AlumMatCursos amc ON amc.Id_Alumno = A.Id_Alumno INNER JOIN CursosMaterias cm ON amc.id_alumMatCurso = cm.id_cursoMateria WHERE cm.id_Curso = ? AND cm.id_Materia = ?";

    com.Parameters.AddWithValue("@Param1", Convert.ToInt32(ViewState["idCurso"]));
    		com.Parameters.AddWithValue("Param2", Convert.ToInt32(ViewState["idMateria"]));      

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    jueves, 13 de agosto de 2015 1:12
  • Hola, no se que es Ms Access y poner los valores directamente en los parámetros.......La operación es en Access, y los valores de los parámetros salen de ViewState de Grilla Curso y de Grilla Materia......Saludos...
    jueves, 13 de agosto de 2015 21:48
  • Hola, me da el mismo Error, gracias....
    jueves, 13 de agosto de 2015 21:48
  • >>no se que es Ms Access

    pero no dijiste que la db es access ?

    si es asi imagino tienes office en la pc y con este el Ms Access para poder editar el archivo de la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 13 de agosto de 2015 22:25
  • Dale, disculpa, me doy cuenta, pruebo, y después te digo....mil millones de gracias, nos vemos...
    jueves, 13 de agosto de 2015 23:50
  • Abro Ms Access 2007, pero no se donde se pone la consulta, y como se ejecuta, gracias, abrazo...
    viernes, 14 de agosto de 2015 0:39