【发布时间】:2017-05-27 13:03:28
【问题描述】:
'输入字符串的格式不正确。'
我正在尝试使用 c# 将数据插入 MYSQL 数据库,但我收到错误消息,提示
输入字符串的格式不正确。到达 (ExecuteNonQuery) 时出现此错误。
public void Register_Cutomer_Orders()
{
string ConnStr = ConfigurationManager.ConnectionStrings["ConnSet"].ConnectionString;
string cmdstr = @"INSERT INTO `shopsorders`
(`order_id`,
`Customers_customer_id`,
`Employees_employee_id`,
`Shops_shop_id`,
`total`,
`date`)
VALUES
(@P_order_id,
@P_Customers_customer_id,
@P_Employees_employee_id,
@P_Shops_shop_id,
@P_total,
@P_date)";
try
{
using (MySqlConnection conn = new MySqlConnection(ConnStr))
using (MySqlCommand cmd = new MySqlCommand(cmdstr, conn))
{
conn.Open();
cmd.CommandType = CommandType.Text;
cmd.CommandText = cmdstr;
foreach (DataGridViewRow item in dGVShop.Rows)
{
cmd.Parameters.Clear();
cmd.Parameters.Add("@P_order_id", MySqlDbType.Int32).Value = null;
cmd.Parameters.Add("@P_Customers_customer_id", MySqlDbType.Int32).Value = Convert.ToInt32(TB_Shop_ReservNum.Text);
cmd.Parameters.Add("@P_Employees_employee_id", MySqlDbType.Int32).Value = 1;
cmd.Parameters.Add("@P_Shops_shop_id", MySqlDbType.Int32).Value = Convert.ToInt32(cbShop_Name.SelectedValue);
cmd.Parameters.Add("@P_total", MySqlDbType.Double).Value = Convert.ToDouble(tb_Shop_Total.Text);
cmd.Parameters.Add("@P_date", MySqlDbType.DateTime).Value = "sysdate()";
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
【问题讨论】:
-
为日期参数尝试一个真实的日期
-
如果你总是希望 sysdate 在
date中,那么把它放在 SELECT 中,不要为它使用参数。