DateTime解析TextBox的文本引发异常

时间:2015-02-12 09:50:22

标签: asp.net vb.net datetime

我正在使用此脚本作为日期选择器:

<script type="text/javascript">
    $(function () {
        $("[id$=txtDate]").datepicker({
            dateFormat: 'dd/m/yy',
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: 'http://192.168.211.71/Imagens/calendar_icon.png'
        });
    });
</script>

$("[id$=txtDate]").datepicker({在这一行中,我将日期选择器分配给txtDate控件(TextBox)。当我尝试将其作为参数添加到存储过程时出现问题:

Cmd.Parameters.Add("@DataPedido", Data.SqlDbType.DateTime).Value = DateTime.ParseExact(TxtDate.Text, "dd/M/yyyy", Nothing)

我得String was not recognized as a valid DateTime. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

如何正确地将文本框的值解析为DateTime?

1 个答案:

答案 0 :(得分:0)

如果您将Nothing作为第三个参数传递给DateTime.ParseExact,请说:&#34;使用我当前的文化日期分隔符代替/&#34; 。但实际上你想使用斜杠作为分隔符。因此,您可以使用InvariantCulture

Dim dt = DateTime.ParseExact(TxtDate.Text, "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

屏蔽这种特殊格式说明符的另一种方法是使用撇号:

DateTime.ParseExact(TxtDate.Text, "dd'/'M'/'yyyy", Nothing) 

以下是相关的documentation

  

&#34; /&#34;自定义格式说明符表示日期分隔符   用于区分年,月和日。 合适   从中检索本地化日期分隔符   当前或指定的DateTimeFormatInfo.DateSeparator属性   培养

并在DateTime.ParseExact中提及:

  

如果provider为null,则 CultureInfo对象对应于   使用当前文化


我想这是jQuery-Datepicker控件的一个问题。看看这里:

ASP.NET textbox with jQuery UI DatePicker value lost when doing a postback