[C# - Access] Query Update

domenica 12 dicembre 2010 - 21.41
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010  |  Access (.mdb)

StefyGraf Profilo | Newbie

Salve a tutti,
in un database Access ho una tabella di nome Dati e con 4 campi: ID, Nome, Cognome, Check.
ID è un numero intero, Nome è un testo, Cognome è un testo, Check è una Checkbox.
Il mio problema è che non riesco a fare la query di update anche sulla CheckBox mentre nella query di inserimento sì.
Questo è il codice che ho usato per l'inserimento:
// Query inserimento nuovo record
using (_cmd = new OleDbCommand("INSERT INTO [Dati] ([ID], [Nome], [Cognome], [Check]) VALUES (?, ?, ?, ?)", _conn))
{
_cmd.Parameters.AddWithValue("ID", txtID.Text);
_cmd.Parameters.AddWithValue("Nome", txtNome.Text);
_cmd.Parameters.AddWithValue("Cognome", txtCognome.Text);
_cmd.Parameters.AddWithValue("Check", checkBox1.Checked);

try
{
// Esegue la queryqq
_cmd.ExecuteNonQuery();

// Appare un messaggio di successo
MessageBox.Show("Record inserito!");
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
E FUNZIONA PERFETTAMENTE!

Questa è la query di aggiornamento e quando la eseguo di dice che c'è un errore di sintassi:
// Query aggiornamento valori
using (_cmd = new OleDbCommand("UPDATE Dati SET ID = ?, Nome = ?', Cognome = ?' , Check = ? WHERE ID = ?", _conn))
{
_cmd.Parameters.AddWithValue("ID", txtID.Text);
_cmd.Parameters.AddWithValue("Nome", txtNome.Text);
_cmd.Parameters.AddWithValue("Cognome", txtCognome.Text);
_cmd.Parameters.AddWithValue("Check", checkBox1.Checked);

try
{
// Esegue la query
_cmd.ExecuteNonQuery();

// Appare messaggio di conferma
MessageBox.Show("Record aggiornato!");
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
E NON FUNZIONA!!!
Ho provato a togliere il Check dalla query e anche come parametro e funziona perfettamente, ma mi serve una query che aggiorni anche la checkbox!!!

Grazie mille a tutti!!!!

ciccio_ska Profilo | Newbie

Ciao,
ho notato un paio di cose nella tua query:
>using (_cmd = new OleDbCommand("UPDATE Dati SET ID = ?, Nome
>= ?', Cognome = ?' , Check = ? WHERE ID = ?", _conn))

1)ci sono degli apici singoli qua e là...(Cognome,Nome)
2)se il campo ID è chiave è normale che tu non riesca ad aggiornare il record..

Prova un pò..

Francesco Scalise
blog: http://netdev.flash-hacks.com

StefyGraf Profilo | Newbie

Gli apici li ho corretti, ma il problema è il Check.
Se lo tolgo funziona alla grande. E' è il parametro sbagliato oppure la query?

StefyGraf Profilo | Newbie

HO RISOLTO!!!!
Ecco la query giusta:
"UPDATE Dati SET ID = ?, Nome = ?, Cognome = ?, [Check] = ? WHERE ID = ?"
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5