Después de configurar el modelo será necesario aprender a operar con el mismo para obtener la información que nuestra aplicación necesita.
Las queries linq que definamos serán transformadas a consultas sql dinámicamente por EF, por eso es importante entender como funcionan, aquí verán como trabajar entidades simple, como agruparlas, herencia, tipos dinámicos, etc.
Link
Hola Leandro, disculpe que lo moleste, le escribo para solicitar su ayuda con el fin que me diga si este código que coloco a continuacion esta bien para cuando aprieto un Boton Aceptar, después de haber seleccionado filas en Tres Grids Views diferentes, los datos de la columna de interés de esas filas, las guardo en variables que luego son llamadas en
ResponderEliminarcmd.Parameters.AddWithValue("@idMateria", Convert.ToInt32( ));
si Ud. conoce algo diferente o el mismo código señalando los errores para que funcione, seria de mi mayor agradecimiento hacia Ud, si me suma en esto, solucionando esto, doy un paso hacia adelante en uno de los ultimos webForms para finalizar mi Tesis.
Le envio un saludo grande:
Guillermo
protected void ButtonAceptar_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridMateria.Rows)
{
CheckBox check1 = row.FindControl("CheckBox1") as CheckBox;
if (check1.Checked)
{
string idMateria = row.Cells[0].ToString();
}
}
foreach (GridViewRow row in GridCurso.Rows)
{
CheckBox check2 = row.FindControl("CheckBox2") as CheckBox;
if (check2.Checked)
{
string idCurso = row.Cells[0].ToString();
}
}
foreach (GridViewRow row in GridProfesor.Rows)
{
CheckBox check3 = row.FindControl("CheckBox3") as CheckBox;
if (check3.Checked)
{
string idProfesor = row.Cells[0].ToString();
}
}
try
{
OleDbConnection cnn = new OleDbConnection();
cnn.Open();
string sql = string.Empty;
sql = @"INSERT INTO CursosMaterias (id_Materia, id_Curso, Id_persona)
VALUES (@idMateria, @idCurso, @idProfesor)";
OleDbCommand cmd = new OleDbCommand(sql, cnn);
cmd.Parameters.AddWithValue("@idMateria", Convert.ToInt32(idMateria.Text));
cmd.Parameters.AddWithValue("@idCurso", Convert.ToString(idCurso.Text));
cmd.Parameters.AddWithValue("@idProfesor", Convert.ToString(idProfesor.Text));
}
PD: es para llenar una Tabla CursosMaterias, para que me figuren solo los Ids de Curso, de Materia, y de Profesor.........Es decir, a Curso le asigno Materia y también el Profesor que la dicta..............Gracias
ResponderEliminarAprovecho la oportunidad hoy 9 de Diciembre de 2014 para saludarlo por el Dia del Informatico............Feliz dia, Usted se lo merece........
ResponderEliminarEspero que haya una respuesta para mi..........Disculpe, Gracias.....
ResponderEliminarhola Guillermo
ResponderEliminarlo que noto es que realizas un foreach por cada grid tomando los check de cada uno, esto va a generar una combinatoria de opciones, pero no se si es lo que buscas
no seria mejor tener un unico grid y por sobre este 3 combos en donde selecciones curso, profesor y materia y con un boton "agregar" añadas una nueva row al grid
entonces en el grid solo muestras las relaciones, es mas podrias hasta validar si hay alguna relacion existente y evitar que se duplique
aqui tienes varias opciones cuando presionas el boton "agregar" insertas directamente, o sino puede ir agregando en un objeto List<> en Session y al aceptar recorres la lista he insertas
creo que hacerlo de esta forma seria mucho mas simple que con 3 grid y checkbox
saludos
Dale Leandro, veo, estudio opciones...............Mil millones de gracias, disculpa las molestias.............
ResponderEliminarEl tema es que a un Curso(debo tomar solo su Id) le debo agregar las Materias que contiene, y luego, el Profesor a cada Materia..........Luego, en otro Grid aparte, en otro webForm, se veria la combinación......
ResponderEliminarEl tema es como meto las Variables donde guardo el valor de los Id de la celda
ResponderEliminar(if (check1.Checked)
{
int idMateria = row.Cells[0].ToString();
}
en
cmd.Parameters.AddWithValue("@idMateria", Convert.ToInt32( ));
Como hago para meter esas Variables en Parametros.AddWithValue
Pregunto, Gracias, Abrazos...
hola Guillermo
ResponderEliminarPara eso deberias definir el DataKeyNames con el campo que represente el id
El valor lo tomas usando el DataKeys
Tengo un articulo que explico como usarlo
[ASP.NET][GridView] - Como seleccionar una fila
saludos
Abrazo Leandro....
ResponderEliminarLeandro buenos dias,
ResponderEliminarllevo tiempo siguiendo tus publicaciones la verdad EF ha sido de gran utilidad para mi, necesito realizar una aplicacion en donde existe varios origenes de datos Ej. Mysql esta la tabla usuarios, Sql Server la tabla compras, en la misma aplicacion yo necesito utilizar esos 2 origenes de datos, por lo que se me ocurrio crear un datacontext por cada origen de datos con sus respectivas entidades.
Actualmente, hice el ejercicio y con el sql server se me conecta, con mysql me muestra la pantalla pero no me muestra los datos, mirando las excepciones el problema es que no tenia relacionado el providers en el app.config, he encontrado en internet varios pero sigo sin poder acceder a los datos, mi version de entity es 6.0.0, y mi version de mysql connect es 6.9.5
hola ksoto
ResponderEliminarpero referencia esta libreria
MySql.Data.Entity
tambien valida
Chapter 10 EF 6 Support
saludos
muchas gracias leandro, me ha servido mucho, queria preguntarte si dentro de tu experiencia conoces algun dll con el que usuarios finales puedan hacer consultas en la base de datos y generar reportes personalizados, es decir que ellos puedan decir que informacion quieren obtener
ResponderEliminarhola ksoto
ResponderEliminarla verdad que algo tan dinamico como para que el usuario pueda editar el reporte hay pocas opciones
se que Reporting Service tiene una opcion para esto
Tutorial: Creating a Report Model
pero la verdad nunca lo he implementado
saludos
Lenadro buenas tardes,
ResponderEliminarTengo una situacion, estamos desarrollando una aplicacion para varios clientes, esta aplicacion la estamos haciendo con EF codefirst, para la mayoria de clientes se toman todos los datos desde una base de datos unica, pero para algunos hay cosas que dilignecian en un formulario y que consultan de una vista en ora base de datos, te doy un ejemplo; se tiene el formulario solicitud que tiene consecutivo fecha y empleado, en el campo empleado debe ir el empleado que solicita, pero a nivel de mi proyecto pertenece a la tabla nomempleado, sin embargo hay 2 o tres clientes que no consultan el codigo que llena el formulario de esa tabla de la misma base de datos si no de una vista lo que me gustaria seria que la aplicacion consultara esa vista sin yo tener que decirle que es una vista o que tenga que cambiar el codigo fuente, espero tu ayuda.
Gracias
hola ksoto
ResponderEliminares que la vista vas a tener que mapearla para poder accederla
quizas podrias mapear la vista y la tabla a entidades diferentes he invocar una u otra segun sea el caso
al tener dos origenes de datos la logica hay que definirla para ambos casos de forma dinamica en runtime no se puede resolver el mapping de las entidades
saludos
Hola, Leandro, aquí va el link:
ResponderEliminarhttps://social.msdn.microsoft.com/Forums/es-ES/f176ff1b-dd53-4260-a484-47a522c68ced/no-se-puede-agregar-o-cambiar-el-registro-porque-se-necesita-un-registro-relacionado-en-la-tabla?forum=webdeves
Abrazo....
Como le va Leandro, en el post este inmediato anterior, le dejo el Link que Ud. me solicito.........disculpe, saludos...
ResponderEliminarhola Guillermo
ResponderEliminarrespondi en el link del foro
saludos
Gracias, Leandro, me fijo.....
ResponderEliminarBuenos dias leandro yo siempre estoy siguiendo tus post, me parecen muy interesantes, pero me ha quedado la interrogante, soy bastante nuevo con esto del framework y mi consulta es, si ya tengo una base de datos ya creada como la enlazo y obtengo sus entidades sin necesidad de mapearlas, es esto posible o es necesario hacerlo. Gracias por la atención.
ResponderEliminarhola
EliminarSi la idea es hacer uso de Code First podrias usar el wizard que te ayude a crear el mapping, analiza el articulo
Reset all the items in a form
alli veras como por medio del wizard podras mapear la db existente
saludos
Yo poseo el VS2012 pero no me aparece esa opción de wizard :/ como le puedo hacer.
EliminarGracias por responder, saludos desde Bolivia.
Eliminartendrias que instalar
EliminarEntity Framework 6 Tools for Visual Studio 2012 & 2013
Bueno muchas gracias todavía no he podido probarlo pero ya me dio las pautas a seguir, gracias por las molestias. Saludos Leandro.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHola, Leandro, disculpe que lo moleste, estoy consultando en foro c#, en las trabas de mi Proyecto ultimamente dado que rindo en Diciembre, y temo quedarme sin timepo, debo terminar cuanto antes para hacer revisiones, etc.....Le pido disculpas que me vea seguido por alli, por ello solicito ayuda para resolver.....y tambien quiero preguntar si hay limite de posteos por dia en le foro...... Disculpe las molestias, gracias....
ResponderEliminarcomprate una vida
ResponderEliminar