Daten zw. Dataset und Report bearbeiten

tecla

Erfahrenes Mitglied
Salut zusammen

Damit meine SQL-Statements klappen, ersetze ich sämtlich Hochkommas, die vom Benutzer eingegeben werden, mit der Zeichenfolge $§$ bevor ich den String in die Datenbank reinschreibe. Wenn ich die Daten aus der Datenbank hole, mache ich dasselbe umgekehrt.
Nun möchte ich die Daten in einem Report darstellen. Dazu fülle ich ein Dataset mit den Daten aus meiner Datenbank. Nun tauchen natürlich statt der Hochkommas lauter $§$-Zeichenfolgen in meinem Report auf.

Gibt es eine Möglichkeit, die Daten im Dataset zu bearbeiten (mag das überhaupt Hochkommas?) oder gibt es eine Funktion in den Textfeldeigenschaften des Reports, die mir die Zeichenfolgen wieder mit den Hochkommas ersetzt?

Oder wie löst ihr das Problem mit den Hochkommas?

Herzliche Grüsse, Tecla
 
Hi

Ich versteh das Problem mit den Hochkomma nicht :confused:
Sorry, aber ich muss das Pferd versuchen von der anderen Seite auszuzäumen
Wieso kannst du diese nicht in der DB speichern? Was sind das für Felder, die dich dazu zwingen?
 
Wenn ich ein Hochkomma im String hab, krieg ich eine Fehlermeldung der Datenbank zurück, weil das Hochkomma für die Datenbank das Zeichen ist, dass der String abgeschlossen ist.

Bsp.

Code:
"INSERT INTO person VALUES ('Müller','Hans')"
klappt
Code:
"INSERT INTO person VALUES ('O'Conner','Paul')"
klappt nicht

drum mach ichs so:
Code:
"INSERT INTO person VALUES ('O$§$Conner','Paul')"

Auf bessere Lösungen bin ich sehr gespannt...

Grüsse, Tecla

PS. Die Textfelder kommen erst beim Report zum Spiel. Das sind die Felder, mit denen man den Report zusammenstellt. Und da gibt es ja die Möglichkeit, die Daten noch mit Funktionen zu bearbeiten.
ZB. Kann ich mit der Funktion
Code:
=IIf(Fields!AdressatName.Value="0", "", Fields!AdressatName.Value + " " + Fields!AdressatVorname.Value)
bestimmen, wie leere Datenbankeinträge erscheinen sollen...
 
hi,

Dann ist der Weg, wie du die Daten in die DB bringst nicht der richtige
C#:
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
            sb.DataSource = @"dbserver";
            sb.UserID = "user";
            sb.Password = "password";
            sb.InitialCatalog = "dbname";
            using (SqlConnection con = new SqlConnection(sb.ConnectionString))
            {
                con.Open();
                using (SqlCommand command = new SqlCommand("INSERT INTO table (id, name) VALUES (@id, @name)", con))
                {
                    command.Parameters.Add(new SqlParameter("@id", 1));
                    command.Parameters.Add(new SqlParameter("@name", @"gibt's"));
                    command.ExecuteNonQuery();
                }
            }
 
Hallo Nico

Herzlichen Dank für den Tipp mit den Parametern!! Unglaublich, wie schöne Lösungen es gibt!

Mit meiner MySql-Datenbank musste ich noch ein bisschen üben. Mindestens mit meiner .Net-Connector - Version von MySql funktioniert das ganze nur, wenn man das "@" mit einem "?" ersetzt in den Parameter-Variablen.

Jetzt läufts aber. Und ich mach mich mal ans Umschreiben meiner Datenbank-Klassen!

Herzliche Grüsse und nochmals Danke

Tecla


EDIT: Sorry, aus unerfindlichen Gründen kann ich deinen Beitrag nicht bewerten. Tutorials meldet, ich müsse erst jemanden anderen bewerten...
 
Zurück