Vb.net 带有日期验证的文本参数输入

Vb.net 带有日期验证的文本参数输入,vb.net,sql-server-2005,reporting-services,Vb.net,Sql Server 2005,Reporting Services,我想允许用户在我的报告中输入日期作为参数 我使用datetime类型作为参数(因此它显示了一个日期选择器)。当我将我的电脑区域更改为“英国”后,它显示正确的格式“dd/mm/yyyy”,但当我在门户网站上查看时,格式错误:它显示“mm/dd/yyyy”。请注意,我的浏览器语言已设置为“en GB” 所以,我想如果我在文本框中创建,我需要对它进行验证。我做了一些研究,并在报表属性的“代码”选项卡中实现了以下VB代码: 函数CheckDateParameters(Dateas日期)为整数 作为字符串

我想允许用户在我的报告中输入日期作为参数

我使用
datetime
类型作为参数(因此它显示了一个日期选择器)。当我将我的电脑区域更改为“英国”后,它显示正确的格式“dd/mm/yyyy”,但当我在门户网站上查看时,格式错误:它显示“mm/dd/yyyy”。请注意,我的浏览器语言已设置为“en GB”

所以,我想如果我在文本框中创建,我需要对它进行验证。我做了一些研究,并在报表属性的“代码”选项卡中实现了以下VB代码:

函数CheckDateParameters(Dateas日期)为整数
作为字符串的Dim msg
如果是日期,则
msg=“格式正确”
其他的
msg=“无效的日期格式”
如果结束
如果是“msg”,则
MsgBox(msg,16,“报告验证”)
错误:Raise(6,报告)'引发溢出
如果结束
端函数
要调用函数,请执行以下操作:

=Code.CheckDateParameters(Parameters!from.Value)
如果日期格式正确,则此函数起作用,但如果格式错误,则此函数不起作用。(我不熟悉VB语言。)


进行验证的正确方法是什么?它是在SSRS端,还是应该在存储过程中执行?

代码的问题是,如果某个日期是您不需要验证的,那么您正在验证该日期。将其更改为已插入的字符串。 尽量不要使用“日期”作为变量名

Function CheckDateParameters(Dates As String) As Integer
        Dim msg As String

        If IsDate(Dates) Then
            msg = "correct format"
        Else
            msg = "invalid date format"
        End If

        If msg <> "" Then
            MsgBox(msg, 16, "Report Validation")
            'Err.Raise(6, Report)                    'Raise an overflow
        End If
    End Function
函数CheckDateParameters(日期为字符串)为整数
作为字符串的Dim msg
如果是日期,则
msg=“格式正确”
其他的
msg=“无效的日期格式”
如果结束
如果是“msg”,则
MsgBox(msg,16,“报告验证”)
“错误提升(6,报告)”引发溢出
如果结束
端函数

日期选择器返回的日期是否不正确,或者您只是对其格式感到困扰?