【问题标题】:Date in Dropdown list box下拉列表框中的日期
【发布时间】:2008-12-29 03:49:51
【问题描述】:

我有 3 个包含日期、月份、年份的下拉列表。所以在更新时我希望这 3 个字段成为 Sql 数据库中的单个数据字段。我正在使用 Asp.Net 2.0 版本(VB.Net)。(现在这 3 个下拉列表值在 sql 数据库中保存为 3 个数据字段)

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    为什么不使用日期/时间选择器呢?在我看来,这比你自己的日、月和年的三元组更好。

    【讨论】:

    • 这减少了诚实错误的机会。通过良好的日历控制,诚实的用户不会输入“9/31/1977”或“2/29/1900”。 (我知道您可以在 javascript 中重新填充日期列表以对应月中正确的天数。)
    • 这也减少了大量用于检查有效日期和根据用户选择更新其他控件的代码。
    【解决方案2】:

    我认为您为此使用了 SqlCommand?这是一些示例,非编译代码,我将在这里为您准备:

    Dim cmd as SqlCommand("update tableX set dt = @var where ID = 1");
    cmd.Parameters.AddWithValue("@var", new DateTime(CInt(day.SelectedValue), CInt(month.SelectedValue, CInt(year.SelectedValue)));
    
    cmd.ExecuteNonQuery();
    

    【讨论】:

    • 它在 DateTime 构造函数中出现异常,因此您不会在数据库中得到错误的日期,但用户体验不会很好。
    • 如果 DateTime 构造函数抛出,你总是可以,呃,抓住它。
    【解决方案3】:

    合并值:

    月+“/”+日+“/”+年

    并使用 DateTime.Parse() 或 DateTime.TryParse() 将它们转换为日期。如果您担心文化的日期格式,请传入 CultureInfo 对象。根据需要添加您自己的验证。

    http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

    并非万无一失,但它可能满足您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 2015-07-22
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多