Ich arbeite an dem folgenden Problem und ich kann keine Antwort finden.Einfügen von Dezimalwerten in MySQL mit C#
Ich habe den folgenden Code bekommt:
public void CreateCmd (string g_cmd,params object[] g_params)
{
int i = 0;
MySqlCommand cmd = verbindung.CreateCommand();
cmd.CommandText = g_cmd;
foreach(object param in g_params)
{
cmd.Parameters.AddWithValue("?param"+i.ToString(), param.ToString());
i++;
}
verbindung.Open();
cmd.ExecuteNonQuery();
}
Das Verfahren funktioniert prima (bisher), aber wenn ich ein Doppel auf die MDB eingefügt werden soll wurde es von der Datenbank gekürzt (?). E. G .:
Der Code I die Methode mit nennen:
database.CreateCmd("INSERT INTO `orders` (`id`, `time`, `tax`, `netto`, `brutto`) VALUES(NULL, CURRENT_TIMESTAMP, ?param0, ?param1, ?param2)", 0.19, 201.5, 239.785);
Der Eingang weicht ist in PHPMyAdmin gezeigt: Screenshot from PHPMyAdmin
Die Struktur der Tabelle (Ich habe verschiedene Daten versucht Typen): another cs of MDB
Ich hoffe, Sie können mir sagen, was ich falsch mache.
Grüße Polarety
Vielleicht ist es zu früh und meine Räder haben noch nicht angefangen, sich zu drehen, aber was meinst du, wenn du "MDB" sagst? _Es lässt mich denken, dass Sie über MSAccess sprechen. _ – Uueerdo
Ich verwende XAMPP mit MariaDB (MDB) anstelle von MySQL. Ich weiß, dass es fast gleich ist, aber ich weiß nicht, ob das der Grund ist, warum es nicht funktioniert hat. – Polarety
AddWithValue kann nicht im Voraus wissen, was der Datentyp in der Datenbank ist, und so erstellt er einen String-Parameter aufgrund von ToString(), aber dies konvertiert Ihre Eingabe in eine Zeichenfolge unter Verwendung Ihrer Gebietsschemaeinstellungen. Die Datenbank mag kein Komma als Dezimaltrennzeichen und möchte einen Punkt. – Steve