1

我真的很难从中获取日期<asp:TextBox>并将其存储在我的 MSSQL 数据库中的“日期”类型字段中。目前我的代码忽略了我的文本框值,并存储了当前日期。我希望有人能帮帮忙!

这是我的代码,我收集这样的日期:

DateTime end = DateTime.Now;
end = Convert.ToDateTime(txtEndDate.Text);

然后这一行与我的查询结合使用,绑定参数。

AppendNews.Parameters.Add(new SqlParameter("@show_to", end));

只是出于兴趣,当我在本地主机上运行程序时,一切正常!

问候

亚当

4

3 回答 3

1

尝试使用:

bool isDateValid = DateTime.TryParseExact(
txtEndDate.Text,"dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture,
DateTimeStyles.None,out end)

这将尝试使用定义的格式解析字符串,如果格式无效则返回 false。

于 2013-03-19T12:45:32.923 回答
0

使用更强的错误检查DateTime.TryParse。您的 DateTime 可能无法正确解析。

DateTime end;

if(!DateTime.TryParse(txtEndDate.Text, out end))
{
    throw new FormatException("End Date must be in a valid format");
}

我会使用SqlParameterCollection.AddWithValue或指定您的SqlDbType.

AppendNews.Parameters.AddWithValue("@show_to", end);
于 2013-03-19T12:49:18.877 回答
0

问题实际上是因为 ASP 服务器的文化与数据库服务器不匹配。为了解决这个问题,需要在 ASP 项目的 web.config 文件中设置文化。这样做,作为<system.web>包装的一部分。

<globalization uiCulture="en-GB" culture="en-GB"/>

然后,当您从您的

DateTime dFrom = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", CultureInfo.CurrentUICulture);

希望这可以帮助!

于 2013-03-31T20:28:25.083 回答