FormatException用于将日期插入数据库

时间:2012-11-21 11:31:54

标签: c#

每当我尝试在数据库中插入日期时,我都会收到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 "')";

1 个答案:

答案 0 :(得分:4)

从根本上说,您正在解决将数据错误地插入数据库的问题。

您将所有内容转换为字符串,并在SQL中包含这些字符串。 不要这样做。改为使用参数化SQL,只需将值直接放入参数中,而不首先转换为字符串。这解决了三个问题:

看起来你有一个很多的字符串转换,我怀疑它们不需要任何。每当你想要将值转换为字符串时,问问自己是否真的必须这样做。每次编写将值转换为字符串然后转换为其他类型的代码时,如下所示:

int.Parse(rows["code"].ToString())

......你应该真的可疑。什么是rows["code"]的执行时间类型?你能用一个演员吗?