CLR: .Net / Mono / Boo / Otros CLR > C#
Conexion Base De Datos Conc#
mararayah:
Hola estoy deseperada!! :scream: en mi codigo q os muestro justa abajo me sale un a interrupcion del tipo:System.InvalidOperationException
Se q tengo q establecer un comando o algo relacionado con selectCommand pero todo lo q encuentro es con visual basic y no consigo eliminar mi error.
Agradezco vuestro tiempo :P
System.Data.DataRow nuevafila;
nuevafila = this.ds.Tables["DatosDestinatarios"].NewRow();
nuevafila["Nombre Apellidos"] = nombreApellidostxt.Text;
nuevafila["Telefono"] = telefonotxt.Text;
nuevafila["e-mail"] =emailtxt.Text;
ds.Tables["DatosDestinatarios"].Rows.Add(nuevafila
String sql = "INSERT INTO DatosDestinatarios(Nombre Apellidos,Telefono,e-mail) VALUES (nombreApellidostxt.Text,telefonotxt.Text, emailtxt.Text)";
cm1.CommandText = sql;
System.Console.WriteLine(sql);
da.Update(ds, "DatosDestinatarios");
MessageBox.Show("La Base de Datos ha sido actualizada");
Diodo:
Hola
¿Cual es el texto de error que te sale? PAra poder ayudarte mejor
Esta parte creo que no es necesaria
--- Código: Text ---String sql = "INSERT INTO DatosDestinatarios(Nombre Apellidos,Telefono,e-mail) VALUES (nombreApellidostxt.Text,telefonotxt.Text, emailtxt.Text)";
No hace falta que hagas una plantilla del comando insert
Puedes usar un CommandBuilder para que se generen solas las instrucciones insert, update y delete del dataadapter
ejemplo del msdn:
--- Código: Text --- OleDbConnection myConn = new OleDbConnection(myConnection); OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(); myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn); OleDbCommandBuilder cb = new OleDbCommandBuilder(myDataAdapter); myConn.Open(); DataSet ds = new DataSet(); myDataAdapter.Fill(ds, myTableName); //code to modify data in DataSet here //Without the OleDbCommandBuilder this line would fail myDataAdapter.Update(ds, myTableName);
He puesto el adaptador OleDb pero para los demas es igual
salu2 :hola:
mararayah:
Te pongo todo el codigo. La interrupccion q me da es:
System.InvalidOperationException, Update requiere que InsertCommand sea válido cuando se pasa la colección DataRow con nuevas filas
public OleDbConnection conexion = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\\servicio_mensajeria_fax\\Base de Datos\\Datos.mdb");
conexion.Open();
public System.Data.DataSet ds;
ds.Clear();
cm1 =new OleDbCommand("SELECT * FROM DatosDestinatarios", conexion);
public OleDbDataAdapter da=new OleDbDataAdapter(cm1);
da.Fill(ds, "DatosDestinatarios");
System.Data.DataRow nuevafila = this.ds.Tables["DatosDestinatarios"].NewRow();
nuevafila["Nombre Apellidos"] = nombreApellidostxt.Text;
nuevafila["Telefono"] = telefonotxt.Text;
nuevafila["e-mail"] =emailtxt.Text;
this.ds.Tables["DatosDestinatarios"].Rows.Add(nuevafila);
da.Update(ds, "DatosDestinatarios");
Ese es el error exacto q me sale gracias por tu atencion
SALUDOS
hellscream:
<_< Debes asignar la propiedad InsertCommand del DataAdapter...
Diodo:
Es mas simple crear un :
--- Código: Text ---OleDbCommandBuilder cb = new OleDbCommandBuilder(myDataAdapter);
y ya te crea todos los comandos del dataadapter
salu2
Navegación
[#] Página Siguiente
Ir a la versión completa