Hallo,
habe folgende Ausgangssituation. Ich sende ein Dataset als XML-String (inklusiv Schema) von einer Desktopanwendung an eine ganz normale ASPX-Site. Dort lese ich den XML-String wieder in ein Dataset ein. Auf dem Server läuft MSSQL Express 2005. Dort sollen Daten aktualisiert werden. Nehmen wir den Fall neue Daten einfügen. Ich durchlaufe also alle Tabellen im Dataset und dann alle Zeilen in der jeweiligen Tabelle. Für jede Zeile generiere ich dann eine Insert-Anweisung und führe die Anweisung über ein SqlCommand aus. Das klappt alles wunderbar. Das einzige Problem sind die Decimal-Felder. Der VALUES Teil der Insert-Anweisung wird so zusammengebaut:
- der colstr wird vorher aus den Feldnamen zusammengebaut
Heraus kommt eine funktionierende SQL-Anweisung. Nur wenn row(i) ein decimal ist, dann steht in der SQL-Anweisung nicht '3.99' sondern '3,99'. Was dann in der Datenbank steht könnt ihr euch wohl vorstellen (nicht 3,99 € sondern 3990,00 €). Eine mögliche Lösung wäre natürlich jedes Feld auf seinen Type zu testen und im Falle von decimal bei der Ausgabe das ',' durch den '.' zu ersetzen. Das finde ich allerdings recht unelegant. Hat vielleicht von euch jemand eine elegantere Idee? Vielen Dank im Voraus.
Conny
PS: eventuell passt der Titel nicht ganz zum Problem
habe folgende Ausgangssituation. Ich sende ein Dataset als XML-String (inklusiv Schema) von einer Desktopanwendung an eine ganz normale ASPX-Site. Dort lese ich den XML-String wieder in ein Dataset ein. Auf dem Server läuft MSSQL Express 2005. Dort sollen Daten aktualisiert werden. Nehmen wir den Fall neue Daten einfügen. Ich durchlaufe also alle Tabellen im Dataset und dann alle Zeilen in der jeweiligen Tabelle. Für jede Zeile generiere ich dann eine Insert-Anweisung und führe die Anweisung über ein SqlCommand aus. Das klappt alles wunderbar. Das einzige Problem sind die Decimal-Felder. Der VALUES Teil der Insert-Anweisung wird so zusammengebaut:
- der colstr wird vorher aus den Feldnamen zusammengebaut
Code:
Dim sql As New StringBuilder(1000) sql.Append("insert into " & tab.TableName) sql.Append(" (" & colstr.ToString & ") VALUES ('") dim valstr as New StringBuilder(100) valstr.Append(row(0) & "','") For i = 1 To tab.Columns.Count - 2 valstr.Append(row(i) & "','") Next valstr.Append(row(tab.Columns.Count - 1)) sql.Append(valstr.ToString & "')") cmd.CommandText = sql.ToString cmd.Connection.Open()
Conny
PS: eventuell passt der Titel nicht ganz zum Problem
Comment