COMMAND BUILDER

14/07/2004 - 19:28 por Claudia | Informe spam
Alguien podria explicarme como funciona el commandbuilder?

Preguntas similare

Leer las respuestas

#1 Leonardo Moreno Forero
15/07/2004 - 07:15 | Informe spam
Hola Claudia,

El CommandBuilder funciona sobre un objeto DataAdapter. El DataAdapter tiene
cuatro objetos Command. Uno para selección de registros, el SelectCommand
(SC), uno para cuando se ingresó un registro en un DataTable saber que hacer
en la base de datos, el InsertCommand (IC), uno para cuando se modificó un
registro en el DataTable, el UpdateCommand (UC) y uno para cuando el
registro fue eliminado del DataTable, el DeleteCommand (DC). Además, el
DataAdapter tiene otros objetos llamados los TableMapping y ColumnMapping.
Estos objetos te mapean los datos de los esquemas de las bases de datos a
los datos de los esquemas de los DataSets.

El DataAdapter debe tener para funcionar por lo menos el SC, este te genera
los TableMappings y los ColumnMappings y te permite relacionar la consulta
del SC con los datos de los DataTables. Pero cuando haces acciones sobre los
DataTables y vas a actualizar la base de datos debes tener los otros tres
objetos Command establecidos. El problema es que en este caso las sentencias
se complican un poco por que debe saber exáctamente como iba el registro
originalmente y como está actualmente. Es decir, debes por así decirlo,
crear un mapeo hacia atrás con las sentencias IC, UC y DC.

El CommandBuilder permite que una vez tengas una sentencia SC, que se haga
sobre una sola tabla y tenga dentro de los campos selecionados los campos de
llave primaria y los campos que no tienen admiten null, puedas generar
automáticamente las demás sentencias IC, UC y DC. El código es más o menos
así:

[C#]
// Crear conexión y DataAdapter
SqlConnection cn = new SqlConnection("");
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Tabla", cn);
// Crear CommandBuilder. Al pasar como parámetro el
// DataAdapter toma el SC y genera los demás comandos
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.UpdateCommand = cb.GetUpdateCommand();
da.DeleteCommand = cb.GetDeleteCommand();
// Crear el DataSet y llenarlo
DataSet ds = new DataSet();
da.Fill(ds);
.
.
.
// Después de trabajar desconectado se actualizan los datos.
// El DataAdapter ya sabe como actualizarlos por que tiene los comandos IC,
UC y DC
da.Update(ds);

[VB]
' Crear conexión y DataAdapter
Dim cn As New SqlConnection("")
Dim da As New SqlDataAdapter("SELECT * FROM Tabla", cn)
' Crear CommandBuilder. Al pasar como parámetro el
' DataAdapter toma el SC y genera los demás comandos
Dim cb As New SqlCommandBuilder(da)
da.InsertCommand = cb.GetInsertCommand()
da.UpdateCommand = cb.GetUpdateCommand()
da.DeleteCommand = cb.GetDeleteCommand()
' Crear el DataSet y llenarlo
Dim ds As New DataSet()
da.Fill(ds)
.
.
.
' Después de trabajar desconectado se actualizan los datos.
' El DataAdapter ya sabe como actualizarlos por que tiene los comandos IC,
UC y DC
da.Update(ds)

Espero que te ayude en algo.

Atentamente,

Leonardo Moreno Forero
MCP - MCSD
Bogotá - Colombia

"Claudia" escribió en el mensaje
news:2cd6501c469c7$f31933a0$
Alguien podria explicarme como funciona el commandbuilder?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida