Autor Beitrag
Stefanie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mo 26.03.07 08:46 
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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: 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

_________________
Kaum macht man's richtig, schon klappts!
Stefanie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mo 26.03.07 10:51 
und was mach ich, wenn ich den Text in einer Variable übergebe?
r2c2
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: 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

_________________
Kaum macht man's richtig, schon klappts!
Stefanie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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? =)
r2c2
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Mo 26.03.07 11:06 

_________________
Kaum macht man's richtig, schon klappts!
Stefanie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: 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

_________________
Kaum macht man's richtig, schon klappts!
Stefanie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Mo 26.03.07 13:20 
user profile iconStefanie 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

_________________
Kaum macht man's richtig, schon klappts!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: 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
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.