Actualizar base de datos desde Conjunto de Datos

07/02/2005 - 20:07 por koldo | Informe spam
Despues de actualizar un campo en un conjunto de datos, quiero que
se actualice en el origen de datos o base de datos original.

He utilizado este ejemplo segun la ayuda de MSDN, pero no funciona.
Me dice lo siguiente:
"La generación SQL dinámica para UpdateCommand no es compatible con
SelectCommand, que no devuelve ninguna información sobre columnas clave."

Si utilizo OleDb sí me funciona el ejemplo pero con Sql Server no
me funciona.

Alguien sabe dónde está el error?

Gracias


SqlConnection conn = new SqlConnection("Persist Security Info=False;"+
"Integrated Security=SSPI;database=mibase;server=localhost");

string sql="select numero, nombre, ciudad, cantidad from clientes";
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand= new SqlCommand(sql,conn);
SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();
da.Fill(ds, "clientes");

//Modificacion de un campo:
ds.Tables["clientes"].Rows[0]["nombre"]="Maite2";

da.Update(ds.Tables["clientes"]);

dataGrid1.DataSource=ds.Tables["clientes"];
 

Leer las respuestas

#1 Miguel Ortiz Falcón
07/02/2005 - 20:19 | Informe spam
Utiliza el método Update del adapter y listo. Las
sentencias insert, udate y delete se construyeron en base
al select que hiciste en el generador?

Saludos

Miguel Ortiz Falcón


Despues de actualizar un campo en un conjunto de datos,


quiero que
se actualice en el origen de datos o base de datos


original.

He utilizado este ejemplo segun la ayuda de MSDN, pero


no funciona.
Me dice lo siguiente:
"La generación SQL dinà¡mica para UpdateCommand no es


compatible con
SelectCommand, que no devuelve ninguna información


sobre columnas clave."

Si utilizo OleDb sà­ me funciona el ejemplo pero con Sql


Server no
me funciona.

Alguien sabe dónde està¡ el error?

Gracias


SqlConnection conn = new SqlConnection("Persist Security


Info=False;"+
"Integrated


Security=SSPI;database=mibase;server=localhost");

string sql="select numero, nombre, ciudad, cantidad from


clientes";
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand= new SqlCommand(sql,conn);
SqlCommandBuilder cb = new SqlCommandBuilder(da);

DataSet ds = new DataSet();
da.Fill(ds, "clientes");

//Modificacion de un campo:
ds.Tables["clientes"].Rows[0]["nombre"]="Maite2";

da.Update(ds.Tables["clientes"]);

dataGrid1.DataSource=ds.Tables["clientes"];
.

Preguntas similares