0

フィールドのリストをデータベースに挿入するプログラムがあります。自分のコンピューターを使用して日時フィールドを挿入すると、正常に完了しているように見えます。ただし、Windows 7 中国語版を使用して挿入すると、フィールドは 0000-00-00 00:00:00 になり、これがコマンドです

MySqlCommand myCommand4 = new MySqlCommand("Insert into OrderRecords_table values('" + OrderIDLabel.Text + "','" + customerCode + "','" + customer + "','" + TelComboBox.Text + "','" + LicenseComboBox.Text + "','" +
                      DriverComboBox.Text + "','" + AddressComboBox.Text + "','" + LocationTypeComboBox.Text + "','" + PickupComboBox.Text + "','" + CustomerTypeLabel.Text + "','" +
                      Convert.ToDecimal(TotalPriceLabel.Text) + "','" + status + "','" + note + "','" + sandReceiptNo + "','" + createtiming + "','" + Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) + "')", myConnection);
myCommand4.ExecuteNonQuery();

少し乱雑に見えることはわかっていますが、それが言う STR_TO_DATE('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','%Y/%M/%d /%H/%m/%s'))" 部分は、現在の日時を挿入する部分です。Windows の英語版を使用するときは問題なく動作しますが、中国語版を使用するときは常に、実際の時刻ではなく 0000-00-00 00:00:00 ではなく、コントロール パネルで日付を表示する形式を変更しようとしました、しかし、それはまだ同じ問題を抱えています。

誰が問題が何であるか知っていますか?

ありがとう

私のコードを編集しました

var sql = "insert into OrderRecords_table values(@OrderID, @customercode, @customer, @PhoneNumber, @license, @driver, @address, @type, @pickupLocation, @PaymentMethod, @totalPrice, @status, @notes, @sandreceiptNo,@createTime, @EditTime)";

            using (var myCommand4 = new MySqlCommand(sql, myConnection))
            {        
                       myCommand4.Parameters.AddWithValue("@orderId", MySqlDbType.VarChar).Value = OrderIDLabel.Text;
                myCommand4.Parameters.AddWithValue("@customercode", MySqlDbType.VarChar).Value =  customerCode;
                myCommand4.Parameters.AddWithValue("@customer",MySqlDbType.VarChar).Value = customer;
                myCommand4.Parameters.AddWithValue("@PhoneNumber", MySqlDbType.VarChar).Value =TelComboBox.Text;
                myCommand4.Parameters.AddWithValue("@license", MySqlDbType.VarChar).Value = LicenseComboBox.Text;
                myCommand4.Parameters.AddWithValue("@driver", MySqlDbType.VarChar).Value = DriverComboBox.Text;
                myCommand4.Parameters.AddWithValue("@address", MySqlDbType.VarChar).Value = AddressComboBox.Text;
                myCommand4.Parameters.AddWithValue("@Type", MySqlDbType.VarChar).Value = LocationTypeComboBox.Text;
                myCommand4.Parameters.AddWithValue("@pickupLocation", MySqlDbType.VarChar).Value = PickupComboBox.Text;
                myCommand4.Parameters.AddWithValue("@PaymentMethod", MySqlDbType.VarChar).Value = CustomerTypeLabel.Text;
                myCommand4.Parameters.AddWithValue("@totalPrice", MySqlDbType.Decimal).Value = Convert.ToDecimal(TotalPriceLabel.Text);
                myCommand4.Parameters.AddWithValue("@status", MySqlDbType.VarChar).Value = status;
                myCommand4.Parameters.AddWithValue("@notes",  MySqlDbType.VarChar).Value =status;
                myCommand4.Parameters.AddWithValue("@sandreceiptNo", MySqlDbType.VarChar).Value = sandReceiptNo;
                myCommand4.Parameters.AddWithValue("@createTiming", MySqlDbType.DateTime).Value = createtiming;
                myCommand4.Parameters.AddWithValue("@EditTime", MySqlDbType.DateTime).Value = DateTime.Now;
                myCommand4.ExecuteNonQuery();

無効な入力があると言っていますが、すべてのフィールドが正しいタイプに割り当てられていることを数回確認しました.. 何が起こっているのかわからない

4

2 に答える 2

-1
MySqlCommand Insert = new MySqlCommand("INSERT INTO [TABLE] ([Date], [TEXT]) VALUES(@Date, @Text) ", myConnection);
Insert.CommandTimeout = 60; //if you need
Insert.Parameters.AddWithValue("@Date", DateTime.Now);
Insert.Parameters.AddWithValue("@Text", "Hello word!");
Insert.ExecuteNonQuery();
Insert.Dispose();
于 2015-04-01T12:27:31.420 に答える