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..
InformationsquelleAutor nawfal | 2011-03-25