Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
DataAdapter,UpdateCommand e cambi bool di Access
martedì 12 luglio 2005 - 12.11
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
astroman
Profilo
| Junior Member
105
messaggi | Data Invio:
mar 12 lug 2005 - 12:11
Ho un problema ad aggiornare un DB Access 2003 con il comando UpdateCommand del oledbdatadapter..l'ho già usato e quindi non è che lo imposto male...il problema è che non devo passare nessun parametro alla query ma lanciarla e basta...è tipo "UPDATE TBL SET VALORE=1 WHERE ID=4" dove il valore è un campo SI/NO di Access...ma ogni volta che la lancio mi va in errore...ho provato a mettere VALORE=-1 ma niente...mi potete dare qualche consiglio?Sono abbastanza disperato...va in errore quando chiamo il comando executenonquery....
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 12 lug 2005 - 13:51
Attenzione se stai usando un DataAdapter è una cosa un po' diversa non puoi lanciare query che vuoi tu. Se hai un DataAdapter si presume sia collegato ad un DataSet e le varie query nell'UpdateCommand, InsertCommand e via di seguito sono ad Hoc per sincornizzare il DataSet con la base di dati (Access, SQL o altro).
Quindi per eseguire una Query tua personalizzata dovresti usare un SqlCommand.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
astroman
Profilo
| Junior Member
105
messaggi | Data Invio:
mar 12 lug 2005 - 14:09
Scusa ma non sono d'accordo...io in pratica uso 3 oggetti come da guida microsoft.Ti riporto l'esempio in questione
public static OleDbDataAdapter CreateCustomerAdapter(OleDbConnection conn)
{
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbCommand cmd;
OleDbParameter parm;
// Create the SelectCommand.
cmd = new OleDbCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", conn);
cmd.Parameters.Add("@Country", OleDbType.VarChar, 15);
cmd.Parameters.Add("@City", OleDbType.VarChar, 15);
da.SelectCommand = cmd;
// Create the UpdateCommand.
cmd = new OleDbCommand("UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", conn);
cmd.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID");
cmd.Parameters.Add("@CompanyName", OleDbType.VarChar, 40, "CompanyName");
parm = cmd.Parameters.Add("@oldCustomerID", OleDbType.Char, 5, "CustomerID");
parm.SourceVersion = DataRowVersion.Original;
da.UpdateCommand = cmd;
return da;
}
Non vedo dataset...o sto capendo male io?
Ho 1 pò di confusione con questi oggetti...ma non esiste un modo per aggiornare velocemente un DB senza dover aprire e fare tutte queste operazioni?!?
astroman
Profilo
| Junior Member
105
messaggi | Data Invio:
mar 12 lug 2005 - 21:44
questo è il codice che funziona senza problemi...
OleDbConnection cn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
cn.ConnectionString=gu.actualConn;
cn.Open();
da.UpdateCommand=cmd;
da.UpdateCommand.CommandText="UPDATE TBL SET FieldDefault=1 WHERE Id=" + IDElement.ToString();
da.UpdateCommand.Connection=cn;
da.UpdateCommand.ExecuteNonQuery();
Alla fine sapere cos'è che non andava bene?Che avevo sbagliato la query!:D
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !