日期返回 asp 工具?

Date returning asp tools?

我正在尝试构建一个 asp.net 网络应用程序,我正在使用 SQL 服务器作为我的数据库。所以现在我需要在屏幕上有一个文本框(或其他),用户必须在其中输入他们的出生日期......但我特别需要的一件事是这个输入(?)必须return C# 页面中的日期时间值。因为代码必须看到这个日期并检查这个人是否大于 18 岁。 首先我想到了这样的东西:

<asp:TextBox CssClass="form-control" ID="TextBoxDOB"  runat="server" TextMode="Date"/>

但如你所想;当我将此文本框称为:TextBoxDOB.Text 它 return 是一个字符串值,程序无法判断此人是否超过 18 岁。

下一步:我尝试了这种 <asp:Calendar> 类型的条目。但是在网页上看起来太大了。也许我可以改变它的外观,但我无法弄清楚 'Calendar' returns.

是什么类型

此外,在定义此人足够大之后,我需要将此信息插入我的 SQL 数据 table。在那种情况下,假设 DOB 列的数据类型是“日期”,我是否能够将用户 DOB 插入到我的 SQL... C# 中此用户输入的 DateTime 值是否为 SQL 的 acceptable?

谢谢

如果您将文本框设置为日期,那么它会产生一个日期值。

因此,如果您在表单上放置一个文本框 - 设置为日期,那么您会得到:

值将被强制(没有字母或字符)。

所以,现在上面按钮背后的代码可以做到这一点:

    Dim MyDate As Date
    MyDate = TextBox2.Text

    If DateDiff(DateInterval.Year, MyDate, Date.Today) >= 18 Then
        Debug.Print("is 18 or older")
    Else
        Debug.Print("is under 18")
    End If

因此,.net 将为您从 sting 到 date 投射。我本可以跳过上面的变量,甚至这样做:

    If DateDiff(DateInterval.Year, Textbox2.Text, Date.Today) >= 18 Then
        Debug.Print("is 18 or older")
    Else
        Debug.Print("is under 18")
    End If

更新数据库也是如此。

例如:

cmdSQL.Parameters.Add("@MyDate", SqlDbType.DateTime).Value = TextBox2.Text

因此,大多数时候您可以简单地允许 .net 自动“转换”值,但为了安全起见,可以像第一个示例所示那样将值推入日期(或日期时间)变量,然后使用在你的代码中。

我还应该注意将文本框设置为日期格式的行为,然后您将获得一个免费的内置日期选择,如上所示。

上面的标记是这样的(网络表单设计器 - 拖放)。

 <asp:TextBox ID="TextBox1" runat="server" Width="261px"></asp:TextBox>
 <br />
 <br />
 <asp:Button ID="Button2" runat="server" Text="Button" Width="73px" />