Comment mettre à jour la base de données MS Access
J'ai besoin d'un simple programme de mise à jour de base de données MS Access champs. J'ai suivi un tutoriel en ligne qui était simple et avait le code de travail. Mais il ne semble pas fonctionner quand j'ai réimplémenté. Voici mon code.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection conn;
OleDbDataAdapter da;
DataSet ds;
OleDbCommandBuilder cb;
DataRow row;
private void Form1_Load(object sender, EventArgs e)
{
conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source = C:\\test.mdb");
da = new OleDbDataAdapter("select* from user", conn);
ds = new DataSet();
conn.Open();
da.Fill(ds, "user");
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
cb = new OleDbCommandBuilder(da);
row = ds.Tables["user"].Rows[0];
row[3] = "hello";
da.Update(ds, "user");
}
}
user
est le nom de la table de ma base de données. Ce que j'ai essayé de faire est de mettre à jour le champ row[0] (première ligne) et la colonne[3] (4e colonne) avec la chaîne hello
.. L'erreur que j'obtiens est Synatx error in FROM clause
. Après quelques internet de la lecture, j'ai trouvé user
doit être entre crochets. J'ai donc fait cela.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection conn;
OleDbDataAdapter da;
DataSet ds;
OleDbCommandBuilder cb;
DataRow row;
private void Form1_Load(object sender, EventArgs e)
{
conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source = C:\\test.mdb");
da = new OleDbDataAdapter("select* from [user]", conn);
ds = new DataSet();
conn.Open();
da.Fill(ds, "user");
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
cb = new OleDbCommandBuilder(da);
row = ds.Tables["user"].Rows[0];
row[3] = "hello";
da.Update(ds, "user");
}
}
Quand je fais cela, je reçois un nouveau message d'erreur, Syntax error in UPDATE statement
. J'ai fait beaucoup de internet la lecture, mais aucune ne semble aborder cette question. Ils ont tous utilisé Update
commande de manière différente. Je sais que de cette manière. Quel est le problème dans mon code? Surtout depuis que cela a fonctionné avant. Ou n'est-ce pas le moyen de mise à jour d'une bonne technique? Merci de m'aider avec le code et pas de termes techniques que je n'ai pas suivi. Ou de toute autre procédure de mise à jour dans ms access?
Grâce.
- J'ai supprimé ma réponse, car en regardant le code, j'ai vu un certain nombre de questions. Plutôt que d'essayer de refactoriser le code, je vous recommande la lecture de cet article: msdn.microsoft.com/en-us/library/tf579hcz(SV.90).aspx
- ^merci David. Permettez-moi de passer par..
Vous devez vous connecter pour publier un commentaire.
Je n'ai jamais essayé d'accéder à une base de données Access avec un .NET
DataSet
avant, mais je pense que vous pouvez remplacer le code dans button1_Click avec quelque chose comme ceci:Oui, je sais, vous seriez de perdre certains des avantages de la
DataSet
, mais la recherche suggère que lesOleDbDataAdapter.Update
fonction ne fait pas de bien jouer avec Accès.The OleDbParameterCollection only accepts non-null OleDbParameter type objects, not String objects
au accessUpdateCommand.Les paramètres.Add("bonjour"); ligne. quelle pourrait être la raison?