CLR: .Net / Mono / Boo / Otros CLR > C#

 Conexion Base De Datos Conc#

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa