|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2007
Città: Rieti
Messaggi: 20
|
[C# ASP.NET] Problema di aggiornamento DB con DataAdapter
Ragazzi ho un problema che non riesco a risolvere, sto cercando di fare una semplice operazione di INSERT su un DataBase tramite il comando Update() di un dataadapter, ma non appena richiamo il comando mi viene fuori un'eccezione del tipo: "Errore di sintassi nell'istruzione INSERT INTO."
Questo è il codice che uso: Codice:
oleDbConn = new OleDbConnection();
oleDbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.pathDB + ";";
oleDbConn.Open();
oleDbCom = new OleDbCommand();
oleDbCom.Connection = oleDbConn;
oleDbCom.CommandText = "SELECT Denominazione, CodiceFiscale, Indirizzo, Telefono, Email, Note FROM Clienti ORDER BY Denominazione";
oleDbAdapter = new OleDbDataAdapter(oleDbCom);
oleDbAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
this.myDataSet.Clear();
oleDbAdapter.Fill(myDataSet, "Clienti");
this.clients = myDataSet.Tables["Clienti"];
objCommandBuilder = new OleDbCommandBuilder(oleDbAdapter);
this.oleDbConn.Close();
// nuova riga
DataRow r = this.clients.NewRow();
for(int i = 0; i<this.fDets.textDetails.Length;i++)
r[i] = this.fDets.textDetails[i].Text;
this.clients.Rows.Add(r);
oleDbAdapter.InsertCommand = objCommandBuilder.GetInsertCommand();
oleDbAdapter.UpdateCommand = objCommandBuilder.GetUpdateCommand();
oleDbAdapter.DeleteCommand = objCommandBuilder.GetDeleteCommand();
oleDbAdapter.Update(myDataSet, "Clienti");
myDataSet.AcceptChanges();
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
|
Non ne sono sicuro, ma non è che non possa generare automaticamente l'istruzione di insert perchè stai selezionando particolari colonne? Prova con SELECT *, o specifica manualmente la query di update.
In LINQ to SQL se abiliti l'insert o l'update non puoi specificare quali colonne reperire, devi accontentarti di *. |
|
|
|
|
|
#3 | |
|
Junior Member
Iscritto dal: Sep 2007
Città: Rieti
Messaggi: 20
|
Quote:
Ho scoperto dove sta il problema ma non capisco il perchè magari qualcuno di voi può illuminarmi. Specificando manualmente l'InsertCommand non ho alcun problema di inserimento questo perchè la Query di inserimento la genero come: "INSERT INTO NomeTabella ([nomeColonna1], [nomeColonna2], ....) ..." Utilizzando il OleDbCommandBuilder invece la query che mi viene generata e che mi da eccezione è nella forma "INSERT INTO NomeTabella (nomeColonna1, nomeColonna2, ....) ..." quindi senza parentesi quadre per le colonne e questo genera l'eccezione. La cosa che non mi spiego è perchè in altre situazioni il CommandBuilder genera un comando corretto e qui no, qualcuno sa illuminarmi? |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:18.




















