Wie update MS Access-Datenbank
Ich brauche ein einfaches Programm zum update von MS Access-Datenbank-Felder. Ich folgte einer online-tutorial, das war einfach und hatte den code arbeiten. Aber es scheint nicht mehr zu funktionieren, wenn ich die implementieren es. Hier ist mein 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
ist der name der Tabelle meiner Datenbank. Was ich versucht habe zu tun ist, aktualisieren Sie die Zeile Feld[0] (erste Zeile) und die Spalte[3] (4. Spalte) mit dem string hello
.. Der Fehler den ich bekomme, ist Synatx error in FROM clause
. Nach einigen internet zu Lesen, fand ich user
werden in eckige Klammern gesetzt. Also machte ich es.
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");
}
}
Wenn ich dies mache, bekomme ich eine neue Fehlermeldung, Syntax error in UPDATE statement
. Ich war viel im internet Lesen aber keiner scheint dieses Problem lösen. Sie haben alle verwendet Update
Befehl anders. Ich kenne nur diesen Weg. Was ist falsch in meinem code? Vor allem, da diese vorher funktioniert. Oder ist nicht diese Art der Aktualisierung eine richtige Technik? Bitte helfen Sie mir mit dem code und nicht technische Begriffe, die ich nicht Folgen. Oder andere Verfahren zur Aktualisierung in ms-access?
Dank.
^danke David. Lassen Sie mich gehen durch..
InformationsquelleAutor nawfal | 2011-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe nie versucht, Zugriff auf eine Access-Datenbank mit ein .NET
DataSet
vor, aber ich denke Sie könnte ersetzen Sie den code in button1_Click-mit so etwas wie dies:Ja, ich weiß, würden Sie Sie verlieren einige der Vorteile des
DataSet
, aber die Forschung deutet darauf hin, dass der regelmäßigeOleDbDataAdapter.Update
Funktion nicht, spielt gut mit Access.wenn ich ausführen, dass ich dieses außergewöhnliche Fehlermeldung.
The OleDbParameterCollection only accepts non-null OleDbParameter type objects, not String objects
bei accessUpdateCommand.Parameter.Add("Hallo"); Zeile. was könnte der Grund sein?Tut mir Leid, dass. Versuchen Sie, accessUpdateCommand.Parameter.Add("Hallo"); accessUpdateCommand.Parameter.AddWithValue("columnname", "Hallo"); und das gleiche tun auf der nächsten Zeile. Ich werde mein edit beantworten, um dies zu reflektieren.
ja, dass hat gut funktioniert. Vielen Dank für das update. Aber ich habe ein relativ einfacher code. Obwohl beide gleich Aussehen. Ich würde post, als Antwort unten. Und verdammt, ich weiß nicht warum wäre es hundert verschiedene Wege gibt, eine Sache zu tun! :X
InformationsquelleAutor Joshua Carmody
InformationsquelleAutor Jay