gpt4 book ai didi

c# - 在测试PC上从C#在mysql中插入datetime时遇到问题

转载 作者:行者123 更新时间:2023-11-29 03:18:40 25 4
gpt4 key购买 nike

我正在将数据从MySql应用程序的C代码插入Windows Forms中。这在我的开发机器上工作得很好。当我把代码移到另一台机器上测试时,我得到了
字符串未被识别为有效的日期时间
我尝试过每种解决方案,甚至转换函数。最后,我尝试使用direct in query来跳过进一步的问题。

string dd = row["TIMESTAMP1"].ToString(); // 14-Nov-2018 02:25:00 AM
DateTime dt1 = DateTime.ParseExact(dd, "dd-MMM-yy h:mm:ss tt", null);
//string date2 = dt1.ToString("yyyy-MM-dd hh:mm:ss");
string y = dt1.Year.ToString();
string m = dt1.Month.ToString();
string d = dt1.Day.ToString();
string h = dt1.Hour.ToString();
string i = dt1.Minute.ToString();
string s = dt1.Second.ToString();
string dte = y + "," + m + "," + d + "," + h + "," + i + "," + s;

//DateTime.TryParseExact(date2, "yyyy-MM-dd hh:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None, out dateDb);
//DateTime date3 = DateTime.Parse(date2, "yyyy-MM-dd hh:mm:ss");
string query = "INSERT INTO transaction (transid, ticketid, storeid, TIMESTAMP, transtypeid, total) Values ('" + row["transid"] + "','" + row["ticketid"] + "','" + Convert.ToInt32(row["storeid"]) + "',STR_TO_DATE('"+dte+ "', '%Y,%m,%d,%h,%i,%s'),'" + Convert.ToInt32(row["transtypeid"]) + "','" + Convert.ToDecimal(row["total"]) + "')";

我怎样才能使这一点在其他机器上毫无例外地工作。它在开发机器上运行良好。
更新
也尝试了参数
cmd.Parameters.Add(new MySqlParameter("@date", date2)).MySqlDbType = MySqlDbType.DateTime;

最佳答案

尝试将其强制转换为US区域性,然后将其传递到ur参数中,将区域性更改为ur db服务器正在使用的区域性

CultureInfo MyCultureInfo = new CultureInfo("en-US");

DateTime usDate = DateTime.Parse(dt1 , MyCultureInfo, DateTimeStyles.NoCurrentDateDefault);

MySqlParameter dateParam = new MySqlParameter("@date", MySqlDbType.DateTime);
dateParam.Value = usDate.ToString("yyyy-MM-dd HH:mm:ss");;
cmd.Parameters.Add(dateParam)

关于c# - 在测试PC上从C#在mysql中插入datetime时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49395293/

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