C sharp - Guardar Datagridview en otra tabla

 
Vista:

Guardar Datagridview en otra tabla

Publicado por Jorge (2 intervenciones) el 30/10/2007 14:13:51
Hola amigos, estoy realizando un programa en C# y llamo a un datagridview para mostrar los datos de unos registros, y agrego dos campos mas, y luego necesito que todo esto me lo guarde en una tabla nueva que contiene los datos mostrados mas los dos campos que el usuario llena.... necesito que me ayuden para poder guardarlos en esta tabla que es distinta a la de origen...

de antemano mucahs gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Guardar Datagridview en otra tabla

Publicado por Iván K (55 intervenciones) el 05/11/2007 18:37:39
Lo que supongo que utilizas son DataSet's verdad, mira yo lo que utilizó es mediante código a mano, no utilizao DataSet's ya que estos no permiten mucho manejar la Herencia, en cambio en código a mano si, esto te podria solucionar este problema.

Suponiendo que estes utilizando OleDb, y que las dos tablas que quieres involucrar son Empleado y Empleado2, en donde Empleado tiene los campos, Clave (cadena) y Nombre (cadena), la segunda tabla Empleado2 contendría los dos campos anteriores más los dos siguientes (según lo que tú necesitas): Direccion (cadena), Telefono (cadena), indicando que la llave primaria es Clave.

// cnnDatos sería la conexión que utilizas hacia la base de datos.
OleDbDataAdapter daEmpleado2 = new OleDbDataAdapter("SELECT Clave, Nombre, '' Direccion, '' Telefono FROM Empleado", cnnDatos);
OleDbParameter pm;
OleDbCommand cmmInsEmpleado2 = new OleDbCommand("INSERT INTO Empleado2 (Clave, Nombre, Direccion, Telefono) VALUES (?, ?, ?, ?)");
pm = new OleDbParameter("Clave", OleDbDbType.VarChar, 10, ParameterDirection.Input, false, 0, 0, "Clave", DataRowVersion.Current, string.Empty);
cmmInsEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Nombre", OleDbDbType.VarChar, 75, ParameterDirection.Input, false, 0, 0, "Nombre", DataRowVersion.Current, string.Empty);
cmmInsEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Direccion", OleDbDbType.VarChar, 50, ParameterDirection.Input, false, 0, 0, "Direccion", DataRowVersion.Current, string.Empty);
cmmInsEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Telefono", OleDbDbType.VarChar, 15, ParameterDirection.Input, false, 0, 0, "Telefono", DataRowVersion.Current, string.Empty);
cmmInsEmpleado2.Parameters.Add(pm);
OleDbCommand cmmUpdEmpleado2 = new OleDbCommand("UPDATE Empleado2 SET Clave = ?, Nombre = ?, Direccion = ?, Telefono = ? WHERE Clave = ?");
pm = new OleDbParameter("Clave", OleDbDbType.VarChar, 10, ParameterDirection.Input, false, 0, 0, "Clave", DataRowVersion.Current, string.Empty);
cmmUpdEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Nombre", OleDbDbType.VarChar, 75, ParameterDirection.Input, false, 0, 0, "Nombre", DataRowVersion.Current, string.Empty);
cmmUpdEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Direccion", OleDbDbType.VarChar, 50, ParameterDirection.Input, false, 0, 0, "Direccion", DataRowVersion.Current, string.Empty);
cmmUpdEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Telefono", OleDbDbType.VarChar, 15, ParameterDirection.Input, false, 0, 0, "Telefono", DataRowVersion.Current, string.Empty);
cmmUpdEmpleado2.Parameters.Add(pm);
pm = new OleDbParameter("Original_Clave", OleDbDbType.VarChar, 10, ParameterDirection.Input, false, 0, 0, "Clave", DataRowVersion.Original, string.Empty);
cmmUpdEmpleado2.Parameters.Add(pm);

daEmpleado2.InsertCommand = cmmInsEmpleado2;
daEmpleado2.UpdateCommand = cmmUpdEmpleado2;

DataTable dtEmpleado2 = new DataTable("Empleado2");
daEmpleado2.Fill(dtEmpleado2);
dataGridView.DataSource = dtEmpleado2;

Disculpa todo el rollo pero haber si esto te funciona, si te fijas al instancia el adaptador, establezco como la propiedad SelectCommand, la consulta hacia la tabla de donde quieres obtener los registros, en este le agregue las dos columnas que quieres que se muestren dentro de la misma consulta SQL (esto me ahorra el rollo de agregárselas por medio de código). En los comandos que se encargan de guardar la información, establezo que se lleven a cabo en la tabla en donde quieres que se guarden Empleado2.

Si utilizas DataSet, y si estos los generaste por medio del asistente, te recomiendo que cheques el código que te genera para que puedas cambiar la información tú manualmente.

Espero y esto te ayude.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Guardar Datagridview en otra tabla

Publicado por Jorge Bahamondes (2 intervenciones) el 05/11/2007 20:07:37
oie gracias, por la respuesta t pasaste voy a intentarlo, y t cuento, pero enserio gracias por darte la lata d responder

GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar