Problem mit Parametern

robb

Mitglied
Nabend zusammen,

also eigentlich bin ich nur dabei eine ganz simple Update Function auf die beine zustellen. Leider Gottes will es mir aber nicht gelingen. Erstmal ein wenig code ;) :

Code:
sSql = "UPDATE tbl_news SET titel = txt_titel.Text WHERE id=" & nId.ToString
        'DB Verbindungsaufbau
        Dim CONNSTR As String
        CONNSTR = "Provider=Microsoft.Jet.OLEDB.4.0;"
        CONNSTR += sDatabase
        Dim conn As New OleDb.OleDbConnection(CONNSTR)
        conn.Open()
        Dim MyCommand As New OleDb.OleDbCommand(sSql, conn)

        MyCommand.ExecuteNonQuery()

        conn.Close()
        MyCommand.Dispose()

Also so sieht meine Update Funktion aus. txt_titel wird vorher in einer anderen Funktion mit nem Reader erfolgreich ausgelesen! Doch wenn ich jetzt meine Update Funktion starte, dann sagt er mir: "Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben."

Wenn ich jetzt txt_titel.Text durch 'TEST' ersetze, wird TEST in die DB geschrieben. Also weiß ich, dass er den Inhalt von txt_titel nicht lesen kann ;) Aber ich habe keine Ahnung wieso das so ist. Habt ihr noch eine Idee?

Wäre euch sehr dankbar!

Grüße
 
Du kannst auch probieren,
den SQL String nacheinander zusammenzusetzen.

Dann merkst du schneller, welches SQL Statement er nicht schluckt.
Meiner Meinung nach steckt der Fehler in der Abfrage


sSql = "UPDATE tbl_news SET titel = " & txt_titel.Text

Wenn das schonmal geht, liegt es an der WHERE Abfrage.

& " WHERE id=" & nId.ToString


Gruss
christian
 
@ Norbert Eder

Hi, danke für den Tipp, leider schluckt der die sql Anweisung nicht. WIeder der Parameterfehler.

@ hofchr

Hi auch zu dir ;),
so wie es aussieht, muss liegt der Fehler bei "txt_titel.Text". Den nimmt er nicht. Doch wenn ich txt_titel.Text mit response write ausschreiben lasse, dann wird mir der richtige Inhalt in der Datenbank angezeigt. Oh man ich verzweifle noch ;)
VIelleicht hat ja noch wer hier eine gute Idee.

Grüße

edit:

habs! Hier die Lösung :rolleyes:

sSql = "UPDATE tbl_news SET titel = '" & txt_titel.Text & "' WHERE id=" & nId.ToString
 
Zuletzt bearbeitet:
Hi,

jetzt weiss ich auch, warum...
Lang Lang ist die JavaSql Vorlesung her....

Wenn man in SQL Anfragen STRING Variablen verwendet,
die er auch als String auffassen soll, müssen diese in "" gesetzt werden.
Da aber die SQL Anfrage bereits in "" steht, müssen noch 2 ' ' aussenrum.

Verbal formuliert :

' ' als Kennung : hier kommt eine Variable
"" als Kennung : nimm die Variable auch als Text in den SQL String auf.

Bei numerischen DatenTypen langt eine einfache Kennung.


Wem das zu unübersichtlich ist, der kann die ganze Kiste auch nacheinander
mit mehreren StringBrocken auchbauen.

Gruss
christian
 
Zurück