Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - string mit hochkomma ' in Datenbank einfügen
Stefanie - Mo 26.03.07 08:46
Titel: string mit hochkomma ' in Datenbank einfügen
Hallo!
Ich möchte zur Laufzeit datensätze in eine Access-Datenbank via SQL einfügen.
nun habe ich strings mit hochkommas drin. wie kann ich diese einfügen?
Danke!
r2c2 - Mo 26.03.07 10:33
Hallo Stefanie :wave:
du musst die Hochkommas escapen. Ich hab zwar mit Access noch nicht gearbeitet, aber im Normalfall geht das, indem man einem \ davorschreibt... vllt gibts auch schon extra Funktionen dafür...
mfg
Christian
Stefanie - Mo 26.03.07 10:51
und was mach ich, wenn ich den Text in einer Variable übergebe?
r2c2 - Mo 26.03.07 10:56
Ähm.... auch escapen. Entweder es gibt dafür schon ne Funktion(was ich für recht wahrscheinlich halte; aber wie gesagt ich hab bisher weder Access noch ADO.NET gemacht, kann dir die Funktionalso nicht sagen ==> einfach mal nachgucken) oder die Funktion existiert noch nicht, dann kannst du sie dir ja selbst schreiben...
mfg
Christian
Stefanie - Mo 26.03.07 11:00
ok, ich werde mal forschen gehn...=)
aber, was vielleicht noch wichtig zu wissen wäre:
was macht "escapen" überhaupt? =)
Stefanie - Mo 26.03.07 11:12
oke, habe es sebst versucht und in meine Variable ein \' eingefügt:
11135010.2004.01.08\'0
es geht aber dennoch nicht...was mache ich falsch?
r2c2 - Mo 26.03.07 11:39
Vielleicht muss man bei Access auch die Hochkommas verdoppeln, also '' statt '. Versuchs mal.
Ansonsten wär ne genauere Fehlerbeschreibung sinnvoll ==> was heißt "geht nicht" ==> Fehlermedlung? Gff. muss dann auch einer ran, der mehr Ahnung von ADO.NET und Access hat, als ich...
mfg
Christian
Stefanie - Mo 26.03.07 12:25
ja, verdoppeln hab ich auch schon versucht. es kommt immer die gleiche fehlermeldung:
Syntaxfehler (fehlender Operator) in Abfrageausdruck
r2c2 - Mo 26.03.07 13:20
Stefanie hat folgendes geschrieben: |
ja, verdoppeln hab ich auch schon versucht. es kommt immer die gleiche fehlermeldung:
Syntaxfehler (fehlender Operator) in Abfrageausdruck |
Auch, wenn ich mir dem Code wahrscheinlich nicht viel anfangen kann, poste mal etwas davon. ggf. muss dann eben jemand anderes ran...
mfg
Christian
JüTho - Di 27.03.07 09:06
Hallo Stefanie,
natürlich gilt die Bitte von r2c2:
Zitat: |
Auch, wenn ich mir dem Code wahrscheinlich nicht viel anfangen kann, poste mal etwas davon. |
Grundsätzliche Empfehlung: Der
DbCommand enthält nur den "nackten" Befehl, hinzu kommen
Parameter:
C#-Quelltext
1: 2: 3: 4:
| OleDbCommand cmd = new OleDbCommand("INSERT INTO MyTable (Id, Name, Adresse) VALUES (?,?,?)"); cmd.Parameters.AddWithValue("newId", 7); cmd.Parameters.AddWithValue("newName", "Stefanie"); cmd.Parameters.AddWithValue("newAdr", "11135010.2004.01.08\'0"); |
Die genaue Formulierung für die Parameter musst Du selbst heraussuchen ('?', mit oder ohne '@' oder ':').
Wenn die Werte der Parameter direkt im CommandText eingetragen werden - womöglich durch Verknüpfung mehrerer Strings und Konvertierungen -, sind solche Unverträglichkeiten immer möglich und führen zu unerklärlichen Fehlermeldungen.
Gruß Jürgen
Stefanie - Di 27.03.07 12:18
vielen dank, ich ha es gschafft! =)
ich habe aber bereits ein neuer Problem...
ich möchte nun die datensätze wieder lesen. habt ihr eine idee, wie ich das machen kann?
die idee ist, dass ich gleiche datensätze suchen möchte...
UGrohne - Di 27.03.07 12:38
Hallo,
bitte erstelle für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Daher:
*geschlossen*
Viele Grüße,
Uwe
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!