Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Guillito en 23 Septiembre 2015, 02:31 AM

Título: No coinciden los tipos de datos en la expresión de criterios.
Publicado por: Guillito en 23 Septiembre 2015, 02:31 AM
Hola, disculpen que los moleste, quisiera si me dan una mano, Debo llenar una tabla AlumnoMateriaCurso, con tres Grids, uno de Alumno, uno de Curso, y otro de Materia, pero este ultimo con ChecksBoxs........Creo que di con el codigo, pero me lanza el error de l titulo de este post,.....si alguien sabe por que , le estoy agradecido si me da una mno con el final de mi tesis, abrazos saludos

El error me salta en el cmd.ExecuteNonQuery();

Código (csharp) [Seleccionar]
protected void ButtonTodas_Click(object sender, EventArgs e)
        {
foreach
            (GridViewRow dgi in GridInscMaterias.Rows)
            {
                CheckBox myCheckBox = dgi.Cells[0].Controls[1] as CheckBox;

                if (myCheckBox != null)
                {
                    if (myCheckBox.Checked == true)
                    {
                        ViewState["idMateria"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria1"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria2"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria3"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria4"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria5"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria6"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria7"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria8"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();
                        ViewState["idMateria9"] = GridInscMaterias.DataKeys[dgi.RowIndex][0].ToString();

                        {
                            string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                            OleDbConnection cnn = new OleDbConnection(cadenaConexion);
                            cnn.Open();

                            string SQL = string.Empty;
                            string SQL1 = string.Empty;
                            string SQL2 = string.Empty;
                            string SQL3 = string.Empty;
                            string SQL4 = string.Empty;
                            string SQL5 = string.Empty;
                            string SQL6 = string.Empty;
                            string SQL7 = string.Empty;
                            string SQL8 = string.Empty;
                            string SQL9 = string.Empty;

                            SQL = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria");
                            SQL1 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria1");
                            SQL2 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria2");
                            SQL3 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria3");
                            SQL4 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria4");
                            SQL5 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria5");
                            SQL6 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria6");
                            SQL7 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria7");
                            SQL8 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria8");
                            SQL9 = ("SELECT id_cursoMateria From CursosMaterias cm Where cm.id_Curso = @idCurso AND cm.id_Materia = @idMateria9");

                            ViewState["idCursoMateria"] = SQL;
                            ViewState["idCursoMateria1"] = SQL1;
                            ViewState["idCursoMateria2"] = SQL2;
                            ViewState["idCursoMateria3"] = SQL3;
                            ViewState["idCursoMateria4"] = SQL4;
                            ViewState["idCursoMateria5"] = SQL5;
                            ViewState["idCursoMateria6"] = SQL6;
                            ViewState["idCursoMateria7"] = SQL7;
                            ViewState["idCursoMateria8"] = SQL8;
                            ViewState["idCursoMateria9"] = SQL9;

                            string sql = string.Empty;
                            string sql1 = string.Empty;
                            string sql2 = string.Empty;
                            string sql3 = string.Empty;
                            string sql4 = string.Empty;
                            string sql5 = string.Empty;
                            string sql6 = string.Empty;
                            string sql7 = string.Empty;
                            string sql8 = string.Empty;
                            string sql9 = string.Empty;

                            sql = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat)";
                            sql1 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat1)";
                            sql2 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat2)";
                            sql3 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat3)";
                            sql4 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat4)";
                            sql5 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat5)";
                            sql6 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat6)";
                            sql7 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat7)";
                            sql8 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat8)";
                            sql9 = @"INSERT INTO AlumMatCursos (Id_Alumno, id_cursoMateria) VALUES (@idAlumno, @idcurMat9)";

                            OleDbCommand com = new OleDbCommand(SQL, cnn);
                            OleDbCommand com1 = new OleDbCommand(SQL1, cnn);
                            OleDbCommand com2 = new OleDbCommand(SQL2, cnn);
                            OleDbCommand com3 = new OleDbCommand(SQL3, cnn);
                            OleDbCommand com4 = new OleDbCommand(SQL4, cnn);
                            OleDbCommand com5 = new OleDbCommand(SQL5, cnn);
                            OleDbCommand com6 = new OleDbCommand(SQL6, cnn);
                            OleDbCommand com7 = new OleDbCommand(SQL7, cnn);
                            OleDbCommand com8 = new OleDbCommand(SQL8, cnn);
                            OleDbCommand com9 = new OleDbCommand(SQL9, cnn);

                            OleDbCommand cmd = new OleDbCommand(sql, cnn);
                            OleDbCommand cmd1 = new OleDbCommand(sql1, cnn);
                            OleDbCommand cmd2 = new OleDbCommand(sql2, cnn);
                            OleDbCommand cmd3 = new OleDbCommand(sql3, cnn);
                            OleDbCommand cmd4 = new OleDbCommand(sql4, cnn);
                            OleDbCommand cmd5 = new OleDbCommand(sql5, cnn);
                            OleDbCommand cmd6 = new OleDbCommand(sql6, cnn);
                            OleDbCommand cmd7 = new OleDbCommand(sql7, cnn);
                            OleDbCommand cmd8 = new OleDbCommand(sql8, cnn);
                            OleDbCommand cmd9 = new OleDbCommand(sql9, cnn);

                            com.Parameters.AddWithValue("@idCurso", (ViewState["idCurso"]));

                            com.Parameters.AddWithValue("@idMateria", (ViewState["idMateria"]));
                            com1.Parameters.AddWithValue("@idMateria1", (ViewState["idMateria1"]));
                            com2.Parameters.AddWithValue("@idMateria2", (ViewState["idMateria2"]));
                            com3.Parameters.AddWithValue("@idMateria3", (ViewState["idMateria3"]));
                            com4.Parameters.AddWithValue("@idMateria4", (ViewState["idMateria4"]));
                            com5.Parameters.AddWithValue("@idMateria5", (ViewState["idMateria5"]));
                            com6.Parameters.AddWithValue("@idMateria6", (ViewState["idMateria6"]));
                            com7.Parameters.AddWithValue("@idMateria7", (ViewState["idMateria7"]));
                            com8.Parameters.AddWithValue("@idMateria8", (ViewState["idMateria8"]));
                            com9.Parameters.AddWithValue("@idMateria9", (ViewState["idMateria9"]));

                            cmd.Parameters.AddWithValue("@idAlumno", (ViewState["idAlumno"]));

                            cmd.Parameters.AddWithValue("@idcurMat", (ViewState["idCursoMateria"]));
                            cmd1.Parameters.AddWithValue("@idcurMat1", (ViewState["idCursoMateria1"]));
                            cmd2.Parameters.AddWithValue("@idcurMat2", (ViewState["idCursoMateria2"]));
                            cmd3.Parameters.AddWithValue("@idcurMat3", (ViewState["idCursoMateria3"]));
                            cmd4.Parameters.AddWithValue("@idcurMat4", (ViewState["idCursoMateria4"]));
                            cmd5.Parameters.AddWithValue("@idcurMat5", (ViewState["idCursoMateria5"]));
                            cmd6.Parameters.AddWithValue("@idcurMat6", (ViewState["idCursoMateria6"]));
                            cmd7.Parameters.AddWithValue("@idcurMat7", (ViewState["idCursoMateria7"]));
                            cmd8.Parameters.AddWithValue("@idcurMat8", (ViewState["idCursoMateria8"]));
                            cmd9.Parameters.AddWithValue("@idcurMat9", (ViewState["idCursoMateria9"]));

                            com.ExecuteScalar();

                            cmd.ExecuteNonQuery();

                            cnn.Close();
Título: Re: No coinciden los tipos de datos en la expresión de criterios.
Publicado por: d91 en 24 Septiembre 2015, 18:19 PM
no soy tan experto, pero pienso que deberias poner un punto de interrupcion donde agregas los valores a los parametros y ver el flujo de ejecucion, para ver cual es el valor del segundo parametro que esta ingresando, puede que se este esperando un int y este ingresando un string
Código (vbnet) [Seleccionar]

cmd.Parameters.AddWithValue("@idcurMat", (ViewState["idCursoMateria"]));'verificar tipo de dato de idCursoMateria