Actualizar base de datos desde conjunto de datos

koldoasp
12 de Marzo del 2010
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"];

edtoca
12 de Marzo del 2010
El problama está en que no hay declarado un campo como primary key en la BD, Saludos

poolnewstylero
12 de Marzo del 2010
Muchisimas gracias , ya me estaba volviendo loco por sacarle una solucion al problema estee , enserio mil gracias xD quien me iva a decir que era simplemente poner un indice en la DB. un aplauso xD 2005 ufff me doy verguenza xD

cstange
12 de Marzo del 2010
Hola, yo estoy con el mismo problema, asi que la respuesta a esta dificultad tambien es en ayuda a mí. Si logras encontrar alguna solución publicala por favor que yo si la encuentró tambien la haré, saludos