Visual Basic.NET - Cómo actualizar los datos en base de datos

 
Vista:

Cómo actualizar los datos en base de datos

Publicado por pableras (17 intervenciones) el 01/06/2007 11:55:06
Hola, qué tal ???

Tengo un datagrid cuyo datasource es un dataset (creado en código). Mi datagrid es personalizado: tiene sus textbox y checkbox, para que se puedan editar y posteriormente actualizar esos datos en la base de datos.

Por ejemplo, en una de las cajas de texto pongo: ... Text='<%# DataBinder.Eval(Container.DataItem, "Nombre") %>' para que muestre el dato de la base de datos en el textbox.

El datagrid se muestra correctamente. Los datos en cada texbox y checkbox dentro del datagrid, pero cuando cambio el contenido de cualquier textbox o checkbox y pincho en un botón que he creado fuera del datagrid para que actualice, no lo hace.

Este es mi código: (eso sí, está en C#...sorry)

--------------------------------------------------------------------------------------------------------------

protected System.Web.UI.WebControls.DataGrid DataGrid2;
protected System.Web.UI.WebControls.DataGrid dtgPaises;
protected System.Web.UI.WebControls.Button Button1;
protected OleDbConnection cnn;
protected DataSet ds=new DataSet();
protected OleDbDataAdapter da=new OleDbDataAdapter();

private void Page_Load(object sender, System.EventArgs e)
{
// Introducir aquí el código de usuario para inicializar la página
cnn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\inetpub\\wwwroot\\esteesmisitio\\db\\esteesmisitio.mdb");
DataSet ds=new DataSet();
OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM Paises",cnn);
OleDbCommandBuilder cb=new OleDbCommandBuilder(da);
da.Fill(ds,"Paises");
this.dtgPaises.DataSource=ds;
this.dtgPaises.DataMember="Paises";
this.dtgPaises.DataBind();
}

private void Button1_Click(object sender, System.EventArgs e)
{
if (this.ds.HasChanges())
{
da.Update(ds,"Paises");
}
}

--------------------------------------------------------------------------------------------------------------

Creo que lo que me falta es vincular cada textbox o checkbox del datagrid con el origen de datos, indicando el campo en la base de datos al que se refiere cada uno...no lo sé.

Alguien me puede explicar o escribir qué tendría que poner para que al pinchar en el botón, me actualice los datos ???

Los campos de la tabla Paises son: Id, Nombre (estos 2 mostrados en un textbox cada uno) y Validado(es un si/no mostrado en un checkbox)

Vengaaaa, muchas graciassss

Un saludo
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

RE:Cómo actualizar los datos en base de datos

Publicado por OliBeer (391 intervenciones) el 01/06/2007 15:50:46
Hola de nuevo!!!!

Mira la verdad yo no sé C#, pero lo que te puedo sugerir es que lo hagas como con el código que te pasé, tienes que recorrer fila por fila y de esta manera asociar el text y el check a la fila que en específico se está recorriendo para que pueda guardar los datos correctamente. 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:Cómo actualizar los datos en base de datos

Publicado por pableras (17 intervenciones) el 01/06/2007 17:50:44
Ok ... Alguna sugerencia más ????
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:Cómo actualizar los datos en base de datos

Publicado por pableras (17 intervenciones) el 01/06/2007 18:30:12
Oliver, lo tuyo sí me sirvió para sacar los datos y enlazarlos con los textbox y eso, pero yo simplemente puse lo de los TemplateColumn; veo que tu pones:

---------------------------------------------------------------------------------------------------------
<asp:BoundColumn DataField="spid" HeaderText="Id" Visible="False">
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Agregar">
<ItemTemplate >
****<asp:CheckBox ID="CheckBox1" runat="server"/>
</ItemTemplate>

......

---------------------------------------------------------------------------------------------------------

yo he puesto:

---------------------------------------------------------------------------------------------------------
<asp:TemplateColumn HeaderText="Id">
<ItemTemplate>
<asp:TextBox id="Textbox6" runat="server" CssClass="textbox2" BorderStyle="None" MaxLength="3" Text='<%# DataBinder.Eval(Container.DataItem, "Id") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
---------------------------------------------------------------------------------------------------------

Pero esto lo que hace es simplemente mostrar los datos en la caja de texto.

Para que me actualice los datos al pinchar el botón, tengo que utilizar la etiqueta también que utilizas tú de <asp:BoundColumn DataField="Id" .... ???

Cómo lo utilizo ??? tengo que meter mi textbox dentro del itemtemplate o dentro del boundcolumn ???

Cómo sería el código HTML este para mi ejericio, en el campo Id este que tengo yo ???? Si puedes escribírmelo, para este campo mío Id, te lo agradecería, xk no lo tengo claro.

Muuuuuxas graciassssssss
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