• Jueves 18 de Abril de 2024, 07:51

Autor Tema:  Conexion Base De Datos Conc#  (Leído 2464 veces)

mararayah

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Conexion Base De Datos Conc#
« en: Viernes 14 de Julio de 2006, 18:01 »
0
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

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Conexion Base De Datos Conc#
« Respuesta #1 en: Viernes 14 de Julio de 2006, 18:22 »
0
Hola

¿Cual es el texto de error que te sale? PAra poder ayudarte mejor

Esta parte creo que no es necesaria

Código: Text
  1. String sql = "INSERT INTO DatosDestinatarios(Nombre Apellidos,Telefono,e-mail) VALUES (nombreApellidostxt.Text,telefonotxt.Text, emailtxt.Text)";
  2.  

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
  1.  
  2.  
  3.    OleDbConnection myConn = new OleDbConnection(myConnection);
  4.    OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
  5.    myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
  6.    OleDbCommandBuilder cb = new OleDbCommandBuilder(myDataAdapter);
  7.  
  8.    myConn.Open();
  9.  
  10.    DataSet ds = new DataSet();
  11.    myDataAdapter.Fill(ds, myTableName);
  12.  
  13.    //code to modify data in DataSet here
  14.  
  15.    //Without the OleDbCommandBuilder this line would fail
  16.    myDataAdapter.Update(ds, myTableName);
  17.  
  18.  
  19.  

He puesto el adaptador OleDb pero para los demas es igual

salu2  :hola:

mararayah

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Conexion Base De Datos Conc#
« Respuesta #2 en: Lunes 17 de Julio de 2006, 11:40 »
0
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

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
Re: Conexion Base De Datos Conc#
« Respuesta #3 en: Lunes 17 de Julio de 2006, 15:17 »
0
<_<  Debes asignar la propiedad InsertCommand del DataAdapter...

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Conexion Base De Datos Conc#
« Respuesta #4 en: Martes 18 de Julio de 2006, 11:37 »
0
Es mas simple crear un :

Código: Text
  1. OleDbCommandBuilder cb = new OleDbCommandBuilder(myDataAdapter);
  2.  

y ya te crea todos los comandos del dataadapter

salu2

Tagasa

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Conexion Base De Datos Conc#
« Respuesta #5 en: Jueves 27 de Julio de 2006, 12:09 »
0
Hola!

He porbado lo del msdn pero me da el siguiente error:

Error en la sintaxis en la instruccion INSERT INTO

dejo el codigo por si sabeis donde puede estar mi fallo

Código: Text
  1.  
  2. try
  3.    Dim cb As OleDbCommandBuilder
  4.            
  5.    cnAccess = New OleDbConnection(cadenaA)
  6.                        
  7.    DAaccess = New OleDbDataAdapter("Select * from TABLA", cnAccess)
  8.    DAaccess.Fill(DSaccess, "TABLA")
  9.  
  10.    cb = New OleDbCommandBuilder(DAaccess)
  11.  
  12.    dr = DSaccess.Tables("TABLA").NewRow
  13.  
  14.    dr(0) = Me.txtOrden.Text
  15.    dr(6) = Me.txtRevision.Text
  16.  
  17.    DSaccess.Tables("TABLA").Rows.Add(dr)
  18.  
  19.    DAaccess.Update(DSaccess, "TABLA")
  20.  
  21.    MessageBox.Show("Grabados los datos")
  22.  
  23. Catch ex As Exception
  24.    MessageBox.Show(ex.Message)
  25. End Try
  26.  
  27.  

Espero me puedan ayudar....

Saludossssss :hola:
Tania