从一个in MSSQL '字段

本文关键字:MSSQL in 字段 TextBox 一个 asp | 更新日期: 2023-09-27 18:04:53

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

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

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

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

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

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

亚当

从一个<asp:TextBox>in MSSQL '字段

尝试使用:

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

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

使用更强的错误检查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);

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

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

然后,当您从

中收集值时,您可以在脚本中通过这一行引用该值。
DateTime dFrom = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", CultureInfo.CurrentUICulture);

希望这对你有帮助!