gpt4 book ai didi

c# - 向数据库中插入数据时出错

转载 作者:行者123 更新时间:2023-11-29 05:08:20 25 4
gpt4 key购买 nike

'输入的字符串格式不正确。'

我正在尝试使用 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() 不是可以转换为日期的字符串。如果您要发送当前时间,请使用 DateTime.UtcNow:

cmd.Parameters.AddWithValue("@P_date", MySqlDbType.DateTime).Value = DateTime.UtcNow;

执行隐式转换时,数据库不会执行字符串标记 - 它只是尝试将其转换为所需的类型。

另外:@P_Customers_customer_id@P_Shops_shop_id@P_total 都是数字,但给出了文本值,这是一个非常糟糕的主意

关于c# - 向数据库中插入数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44217200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com