Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler beim Übertragen von Zahlen mit Komma aus C# in SQL DB

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler beim Übertragen von Zahlen mit Komma aus C# in SQL DB

    Hallo zusammen,
    ich arbeite gerade an meiner Abschlussarbeit und habe ein Problem.

    Ich versuche eine Kommazahl in meine Datenbank zu übertragen, leider tritt an der Stelle
    "SqlDataAdapter.Fill(DataTable)"
    ein Fehler auf.
    In der Fehlermeldung steht nur, dass in der Nähe einer Zahl (Immer die Zahl die die erste Kommastelle ist) ein Fehler aufgetreten ist.

    Wenn ich in meine DB-Tabelle Kommazahlen eintrage, ändert er diese automatisch von z.B. "2.3" in "2,3",
    aber funktioniert dann einwandfrei.

    In meinem C#-Code liegt die Zahl so vor: "2.3", wenn ich aber die Variable in den dem SqlCommand übergebe, wird daraus "2,3",
    demnach dachte ich, dass alles funktionieren sollte, leider falsch gedacht.
    Ich habe nun schon diverse Kombinationen ausprobiert, SQL-Datentyp: dezimal, float, numeric, real und dazu auf der C#Seite: float, dezimal.
    Aber Irgendwas mache ich falsch. Hat jemand eine Idee? Das wäre mir eine große Hilfe und Freude und ich wäre sehr dankbar und glücklich darüber.

    Die ganze Methode:
    Code:
            public void AddBewertung(Video selectedVideo)
            {
                SqlConnection con = OpenConnection();
                DataTable dt = new DataTable("tbVideos");
                decimal _sterne = Convert.ToDecimal(Math.Round(selectedVideo.Sterne,1));
                SqlCommand cmd = new SqlCommand($@"UPDATE tbVideos SET ViAnzahlBewertungen = {selectedVideo.AnzahlBewertungen}, ViSterne = {_sterne}, AllRatingPoints = {selectedVideo.AllRatingPoints} WHERE VideoID = '{selectedVideo.VideoID}'", con);           
                var da = new SqlDataAdapter(cmd);           
                da.Fill(dt);          
    
                var builder = new SqlCommandBuilder(da);
                da.Update(dt);
                con.Close();
            }
    LG
    Marie
    Zuletzt geändert von Marie; 10.10.2018, 16:14.

  • #2
    Hallo Marie,

    welchen Typ hat denn das Feld in Deiner Datenbank?

    Kommentar


    • #3
      Hallo,

      so ganz verstehe ich die Thematik nicht, das Problem ist recht dürftig beschrieben. Versuch doch trotzdem mal die query beim zusammensetzen mit .ToString(CultureInfo.InvariantCulture) aufzurufen.

      Kommentar

      Lädt...
      X