我在从<asp:TextBox>
获取日期并将其存储在MSSQL数据库的“DATE”类型字段中时遇到了麻烦。目前我的代码忽略了我的文本框值,并存储了当前日期。我希望有人可以帮忙!
这是我的代码,我收集这样的日期:
DateTime end = DateTime.Now;
end = Convert.ToDateTime(txtEndDate.Text);
然后这一行与我的查询一起使用,以绑定参数。
AppendNews.Parameters.Add(new SqlParameter("@show_to", end));
出于兴趣,当我在本地主机上运行该程序时,一切正常!
此致
亚当
答案 0 :(得分:1)
尝试使用:
bool isDateValid = DateTime.TryParseExact(
txtEndDate.Text,"dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture,
DateTimeStyles.None,out end)
这将尝试使用定义的格式解析字符串,如果格式无效,则返回false。
答案 1 :(得分: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);
答案 2 :(得分: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);
希望这有帮助!