每当我尝试在数据库中插入日期时,我都会收到formatException。
我将日期转换为字符串并尝试插入数据库。我已尝试过所有方法,但它被视为例外。找到以下代码:
$ DateTime date = Convert.ToDateTime(rows["Limit_maturity_date"].ToString());
string newdate = date.ToShortDateString();//.Replace("/","");
DateTime dd = DateTime.ParseExact(newdate, "M/d/yyyy", CultureInfo.InvariantCulture);
queryString = "INSERT INTO Table (CODE, NUM, CCODE, LCODE, SACCODE, LIM, L_DATE)" +
" VALUES ('" + int.Parse(rows["code"].ToString()) + "','" + int.Parse(rows["number"].ToString()) + "','" + int.Parse(rows["Ccode"].ToString()) + "','" + int.Parse(rows["Lcode"].ToString()) + "','" + int.Parse(rows["Sacode"].ToString()) + "','" + int.Parse(rows["limit"].ToString()) + "','" + newdate "')";
答案 0 :(得分:4)
从根本上说,您正在解决将数据错误地插入数据库的问题。
您将所有内容转换为字符串,并在SQL中包含这些字符串。 不要这样做。改为使用参数化SQL,只需将值直接放入参数中,而不首先转换为字符串。这解决了三个问题:
看起来你有一个很多的字符串转换,我怀疑它们不需要任何。每当你想要将值转换为字符串时,问问自己是否真的必须这样做。每次编写将值转换为字符串然后转换为其他类型的代码时,如下所示:
int.Parse(rows["code"].ToString())
......你应该真的可疑。什么是rows["code"]
的执行时间类型?你能用一个演员吗?