【问题标题】:date saving in SQL using vb.net使用 vb.net 在 SQL 中保存日期
【发布时间】:2017-09-02 01:22:06
【问题描述】:

我正在使用以下代码从文本框中保存日期并使用日期选择器选择日期。

 If (String.IsNullOrEmpty(DobTxt.Text)) Then
        SQLCmd.Parameters.Add("@DOB", SqlDbType.Date).Value = DBNull.Value
    Else
        Dim DOBDte As date= String.Format("{0:YYYY-MM-dd}", DobTxt.Text.Trim())
        SQLCmd.Parameters.Add("@DOB", SqlDbType.Date).Value = DOBDte
    End If

现在代码可以很好地处理像“”这样的日期

但是当您选择像“10/01/2016”这样的日期时,我会收到以下错误:

从字符串“10/30/2016”到类型“日期”的转换无效

你能帮忙吗

【问题讨论】:

标签: sql asp.net vb.net date


【解决方案1】:

使用TryParse 将文本值转换为日期。

Dim dateValue As Date
If String.IsNullOrWhiteSpace(DobTxt.Text) Then
    SQLCmd.Parameters.Add("@DOB", SqlDbType.Date).Value = DBNull.Value
ElseIf Date.TryParse(DobTxt.Text.Trim(), dateValue) Then
    SQLCmd.Parameters.Add("@DOB", SqlDbType.Date).Value = dateValue
Else
    ' alert the user that there is invalid input
End If

【讨论】:

  • 所以任何不解析为 DateTime 的都是空的?这并不能完全解决他当前的问题,即日期格式问题。此外,这将隐藏任何日期格式错误。
  • 很公平...我添加了另一个条件来提醒用户输入错误。该值确实需要在某个时候转换为日期。
【解决方案2】:

如果您使用的是 jQuery 日期选择器,并且您的日期格式不是 mm-dd-yy,您应该将 datepicker 配置为该格式:

$( ".selector" ).datepicker({
  dateFormat: "yy-mm-dd"
});

【讨论】:

  • 你怎么知道 jQuery 日期选择器正在被使用?
  • 他在帖子里这么说。
  • 他说的是“日期选择器”。我想那里有数百个日期选择器。
  • 好的,这是一个 Jquery 问题,这种格式有效,'M/dd/yyyy' 其他的给我同样的错误
猜你喜欢
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 2013-03-17
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多