Announcement

Collapse
No announcement yet.

String in Wert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String in Wert

    Hallo
    Ich habe einen String ( in welcher sich eine Zahl befindet ). Ich muss diesen String in ein Moneyfeld in den SQL-Server überführen. Wie kann ich dies am sinnvollsten tun?
    Es handelt sich um das Feld StdSatz.

    Mein Insert sieht folgendermaßen aus:

    strSQL = "INSERT INTO Stundensatz (IDMa,StdSatz) Values (" & IDMa & "," & StdSatz & ")"

  • #2
    Wenn in der Stringvariablen StdSatz tatsaechlich eine Zahl steht, sowas wie "23.95", dann sollte das genau so funktionieren, wie in dem SQl Statement beschrieben.
    Das SQL Statement saehe dann ja so aus:
    strSQL = "INSERT INTO Stundensatz (IDMa,StdSatz) Values (" & IDMa & ",23.95)"
    Das einzige Problem könnte darin liegen, dass der String einen Punkt oder ein Komma als Dezimaltrenner hat und der DB Server genau das andere erwartet

    Comment


    • #3
      Genau das ist das Problem.
      Ich dachte,dass ich eine Function baue in der ich diesen String in eine "für den SQL-Server" verständliche Zahl umwandle.

      Z.B.:

      Private Function StringInDouble(MyString as String) as Double
      ....
      end Function

      strSQL = "INSERT INTO Stundensatz (IDMa,StdSatz) Values (" & IDMa & "," & StringInDouble(StdSatz) & ")"

      Mir ist nur nicht ganz klar wie die Function aussehen muss...

      Comment


      • #4
        Hallo,

        Ich würde einfach mit Parametern arbeiten.
        Also insert into Stundensatz (IDMa,StdSatz) Values(:IDMa,:StdSatz);

        ParamByName("Stundensatz").AsFloat:= 23.95

        Das : für den Parameter könnte auch ein ? sein.

        Heik

        Comment


        • #5
          Hallo,
          vielleicht kannst Du es hiemit probieren. Eingang ist ein String mit Exponent. Ausgang eine Double Zahl.
          Gruß
          Volker

          Public Function StringToDouble(ByRef strZahl As String) As Double
          'Funktion liest einen String mit E für Exponent ein teilt dieses string in ein Array ZahlLinks,ZahlRechts
          'und gibt eine Zahl double zurück.

          Dim c As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")
          Dim TeilString() As String
          Dim ZahlLinks As Double
          Dim ZahlRechts As Int16
          Const Exponent As Int16 = 10

          System.Threading.Thread.CurrentThread.CurrentCultu re = c
          System.Threading.Thread.CurrentThread.CurrentUICul ture = c

          TeilString = Split(strZahl, "E") 'Aufteilung des Strings nach E für Exponent
          ZahlLinks = Double.Parse(TeilString(0)) 'Konvertierung von Teilstring(0) in Double
          ZahlRechts = Double.Parse(TeilString(1)) 'Konvertierung von Teilstring(1) in Double
          Return ZahlLinks * Exponent ^ (ZahlRechts) 'Berechnung des Rückgabewertes mit Exponent

          End Functio

          Comment

          Working...
          X