Ich versuche, meine Datenbank zu aktualisieren, indem Sie einen bestimmten Datensatz aus der Datenbank auswählen und in den Textfeldern anzeigen und dann auf eine Schaltfläche klicken, um die Bearbeitung über die Textfeldeingabe zu aktualisieren . Wenn ich jedoch versuche, zu überprüfen, ob der Datensatz in der Datenbank vorhanden ist, indem ich die Anzahl der betroffenen Zeilen ermitteln kann, wird immer 0 angezeigt. Kann mir jemand helfen, herauszufinden, warum das so ist?So aktualisieren Sie die Access-Datenbank von Textboxeingabe in C#
private void button3_Click(object sender, EventArgs e)
{
string ghost1 = textBox1.Text.ToString();
string ghost2 = textBox2.Text.ToString();
string ghost3 = textBox3.Text.ToString();
string ghost4 = textBox4.Text.ToString();
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\Users\jameschoi\Desktop\andrew.mdb";
conn.Open();
//OleDbDataReader myReader = null;
OleDbCommand command = new OleDbCommand("SELECT * FROM Stock WHERE SKU ='" + ghost1 + "'", conn);
OleDbCommand combank = new OleDbCommand("INSERT INTO Stock (Description, Qty, Price) VALUES ('" + ghost2 + "', '" + ghost3 + "', '" + ghost4 + "')", conn);
int frango = command.ExecuteNonQuery();
string test1 = frango.ToString();
command.ExecuteNonQuery();
try
{
if (frango > 0)
{
combank.ExecuteNonQuery();
MessageBox.Show("Update Successful");
conn.Close();
}
else
{
MessageBox.Show("Record does not exist");
}
}
catch (Exception ex)
{
MessageBox.Show("Failed due to" + ex.Message);
}
finally
{
conn.Close();
DataSet_update();
}
}
nur um sicher zu sein, was 'SELECT * FROM Lager WHERE SKU = '" + ghost1 + "'' sah aus wie vor dem Aufruf 'ExecuteNonQuery()'? Ein einfacher Whitespace kann alles ruinieren. –
Verwenden Sie immer SQL-Parameter, anstatt Ihre SQL zusammen zu kleben. Unter anderem überliefern Sie, wie ich annehme, Zahlen (Menge, Preis) als Text. Außerdem ist die Text-Eigenschaft 'string', um mit zu beginnen -' ToString() 'ist sinnlos – Plutonix
@BagusTesa Ich verstehe nicht, was du meinst? Wenn du die Leerzeichen zwischen dem '+ ghost1 +' meinst, habe ich '+ ghost1 +' versucht und frugo kommt immer noch auf 0. – Icecubelegacy