Aktuelles Datum in Access Tabelle schreiben = Fehler

Deletemaster

Erfahrenes Mitglied
Hallo zusammen,

ich möchte über ein Formular Daten in meiner Tabelle aktualisieren, sowei so gut
Abschließend möchte ich das Änderungsdatum mittels:
Code:
private void geprueft_am()
{
    try
    {
        string str_vrn = txt_vrn.Text;
        DateTime dt = DateTime.Now;

        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = conn;
        cmd.Parameters.Add("@vrn", txt_vrn.Text);
        cmd.CommandText = "UPDATE offen SET [geprüft am] = dt WHERE vrn = @vrn";
        cmd.ExecuteNonQuery();


    }
    catch(Exception ex)
    {
        lbl_Fehler.Text = (ex.Message);
    }
}

Fehler: Für mindestens einen erforderlichen Parameter wurde kein Wert übergeben.

Warum funktioniert diese einfache Query nicht?

Danke für Eure Hilfe
 
Code:
cmd.CommandText = "UPDATE offen SET [geprüft am] = dt WHERE vrn = @vrn";

Schreibfehler ist die häufigste Ursache für diese Art von Fehler. Überprüfe die fettmarkierte Spalte ob sie auch wirklich so in deiner Datenbank vorhanden ist, was ich nicht glaube.
 
Hallo Konstantin,

es liegt definitiv kein Schreibfehler vor.
Die Spalte/Feld geprüft am existiert.
Da der Feldname ein Leerzeichen enthält, steht dieser in eckigen Klammern, was bei einer anderen Query definitiv funktioniert.
Ich habe nochmals alle Tabellen, in die Werte geschrieben werden sollen, kontrolliert.
Da die Fehlermeldung NICHT lautet: Unbekannter Feldname, sondern:

Für mindestens einen erforderlichen Parameter wurde kein Wert übergeben, liegt es wohl am dt
DateTime dt = DateTime.Now;

Es muss irgendein anderer Fehlerteufel sein...
 
Leider funktioniert bei mir das Debuggen nicht:
"Fehler: Das Debuggen kann auf dem Webserver nicht gestartet werden"
Habe VS2003 Framework 1.1 und 2.0
Habe unter Internet-Informationsdienste -->Webseiten --> Eigenschaften --> ASP.NET das Framework 1.1 oder 2.0 angegeben
beide Varianten funktionieren nicht
Habe auch schon reichlich gegoogelt.
Habe aber nichts anderes gefunden.
Bei anderen Codern hat es danach funktioniert.

Merkwürdig

Werde jetzt mal versuchen ein Label oder eine TextBox mit dem Wert DateTime.Now zu füllen...
 
So, hab jetzt ne Lösung für das Datum gefunden:

ich muss das Datum als string übergeben (warum auch immer?

Code:
private void geprueft_am()
{
	try
	{
		string str_vrn = txt_vrn.Text;
		DateTime dt = DateTime.Now;
		string str_datum = Convert.ToString(dt);

		OleDbCommand cmd = new OleDbCommand();
		cmd.Connection = conn;
		cmd.Parameters.Add("@vrn", txt_vrn.Text);
		cmd.CommandText = "UPDATE offen SET [geprüft am] = '" + str_datum + "' WHERE vrn = @vrn";
		cmd.ExecuteNonQuery();


	}
	catch(Exception ex)
	{
		lbl_Fehler.Text = (ex.Message);
		}
}
 
Zurück