2016-12-20 2 views
3

Ich werde verrückt versuchen, den Grund herauszufinden, warum der untenstehende Code meine Datenbank nicht aktualisieren wird. Ich schätze jede Hilfe.
Die Verbindungszeichenfolge ist korrekt und ich kann ähnliche Befehle ausführen, nur diese funktioniert aus irgendeinem Grund nicht. Grundsätzlich möchte ich Vorkommen des Wertes "1" durch "123" in einer Spalte ersetzen, die ich an die Methode übergebe.Access Update-Anweisung funktioniert nicht in C#

 public void removeExpired2(string column, string user) 
    { 
     string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\DB.accdb"; 

     using (OleDbConnection conn = new OleDbConnection(connectionString)) 
     { 
      OleDbCommand cmd = new OleDbCommand("UPDATE [Reservations] SET [" + column + "] = @Column WHERE [" + column + "] = @ID"); 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = conn; 
      cmd.Parameters.AddWithValue("@Column", "123"); 
      cmd.Parameters.AddWithValue("@ID", "1"); 
      try 
      { 
       conn.Open(); 
       cmd.ExecuteNonQuery(); 
      } 
      catch (Exception ex) 
      { 
       ScriptManager.RegisterClientScriptBlock(Button1, this.GetType(), "AlertMsg", "<script language='javascript'>alert('" + ex.Message.ToString() + "');</script>", false); 
      } 
     } 
    } 
+0

Aber Sie ersetzen '123' durch' 1' – Mairaj

+0

Ich habe diesen Fehler gemacht, während die Werte hier geändert werden, um es einfacher zu erklären, aber in meinem Code steht das Problem immer noch. Ist etwas falsch mit der Aussage selbst, außer den gegenteiligen Werten? – mejaw

+0

Haben Sie den Rückgabewert von 'cmd.ExecuteNonQuery()' überprüft? – Azodious

Antwort

2

Im Grunde, was ich will ist Vorkommen des Wertes „1“ mit „123“

Ihre Anfrage direkt gegenüber tut zu ersetzen.

Ändern Sie diese

"UPDATE [Reservations] SET [" + column + "] = @Column WHERE [" + column + "] = @ID" 

zu

"UPDATE [Reservations] SET [" + column + "] = @ID WHERE [" + column + "] = @Column" 

OR

tun:

cmd.Parameters.AddWithValue("@Column", "123"); 
cmd.Parameters.AddWithValue("@ID", "1"); 
+0

Ich habe diesen Fehler gemacht, während ich die Werte hier ändere, um es einfacher zu erklären, aber in meinem Code steht das Problem immer noch. Ist etwas falsch mit der Aussage selbst, außer den gegenteiligen Werten? – mejaw

0

Ich hatte den Befehl mit zwei anderen Befehlen ausgeführt, also habe ich versucht, sie zu trennen, und es scheint das Problem behoben zu haben.
Ich habe einen Befehl in seine eigene Methode verschoben, und die restlichen zwei sind wie zuvor, und es funktioniert jetzt. Danke an alle.

Verwandte Themen