在VB .NET应用程序中转换日期时间

Lamloumi Afif

我在日期时间格式转换中遇到问题。在我的数据库表中,我有一列jour的格式如下:

01/02/2014 00:00:00

DD/MM/YYYY 00:00:00当我这样做时:

        Dim date1 As String = Session("date1")
        Dim date2 As String = Session("date2")
        Dim datefirst As DateTime
        Dim dateSecond As DateTime
        Try
            datefirst = DateTime.Parse(date1)
            dateSecond = DateTime.Parse(date2)
        Catch ex As Exception

        End Try
        Dim report As ReportDocument = New ReportDocument()
        Dim reportPath As String = Server.MapPath("Reports\Prix.rpt")
        Dim ds As DataSet
        Dim cnn As SqlConnection
        Dim connectionString As String = "Data Source=HP-PC\SQLEXPRESS;Initial Catalog=ReportingFormation;Integrated Security=True;Pooling=False"
        Dim sql As String = ""
        Dim dscmd As SqlDataAdapter
        cnn = New SqlConnection(connectionString)
        cnn.Open()

        sql = "SELECT * FROM PrixProduit where ( Jour >= '" + datefirst + "'and Jour <='" + dateSecond + "')"
        dscmd = New SqlDataAdapter(sql, cnn)
        ds = New DataSet()

        dscmd.Fill(ds, "PrixProduit")

使用这些值:date1 = 30/01/2014 date2 = 06/02/2014 datefirst = #1/30/2014# dateSecond =#2/6/2014#

所以我得到了这个错误

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

在这行代码中:

dscmd.Fill(ds, "PrixProduit")

所以我需要知道

  • 此错误的原因是什么?
  • 我该如何解决?
用户名

对于这种情况,您有两个选择,第一个是更改date应用程序以匹配date数据库。其次是在期间包含风格convert下面是例子试图convert varchardate场。首先select会失败。但是第二个将起作用,因为我指定了style我期望的字符串。

DECLARE @datechar VARCHAR(12) = '16/03/2014'

SELECT CONVERT(DATE, @datechar)

SELECT CONVERT(DATE, @datechar, 103)

您需要将SQL代码修改为以下内容

sql = "SELECT * FROM PrixProduit where ( Jour >= Convert(date,'" + datefirst + "',103 ) and Jour <= Convert(date,'" + dateSecond + "',103))"

就像已经提到的人一样,您应该避免使应用易于进行sql注入的字符串串联。因此,为此修改代码。

sql = "SELECT * FROM PrixProduit where Jour >= Convert(date,@datefirst,103 ) and Jour <= Convert(date,@datesecond,103)"

之后,只需将参数添加到您的命令中即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在VB .NET应用程序中转换日期时间

来自分类Dev

在Vb.net中转换日期时间格式

来自分类Dev

在Vb.net中转换日期时间格式

来自分类Dev

vb.net应用程序的OutOfMemoryException

来自分类Dev

将Windows Phone应用程序的C#转换为VB.NET

来自分类Dev

VB NET转换日期格式

来自分类Dev

vb.net日期值将转换为时间

来自分类Dev

从vb.net应用程序添加Outlook签名

来自分类Dev

VB.net应用程序在启动时启动

来自分类Dev

关闭Word应用程序,vb.net

来自分类Dev

VB.NET Forms应用程序架构

来自分类Dev

VB NET Windows桌面应用程序的现代UI

来自分类Dev

VB.net应用程序使用的文件

来自分类Dev

vb.net ClickOnce应用程序部署问题

来自分类Dev

关闭Word应用程序,vb.net

来自分类Dev

发布VB.NET Winform应用程序

来自分类Dev

从VB .NET应用程序内部触发SQL作业

来自分类Dev

在VB.Net中构建systray应用程序?

来自分类Dev

发布Vb.net10应用程序

来自分类Dev

使用VB.NET应用程序安装游标?

来自分类Dev

后台进程挂起应用程序vb.net

来自分类Dev

延迟vb.net中的应用程序

来自分类Dev

VB.net应用程序使用的文件

来自分类Dev

Vb.Net测验应用程序多视图

来自分类Dev

vb.net应用程序因TeamViewer冻结

来自分类Dev

vb.net应用程序中的优化xml处理

来自分类Dev

VB.net Winforms应用程序中的Oracle角色

来自分类Dev

根据用户在控制台应用程序 VB.NET 中输入的修改日期搜索文件

来自分类Dev

Vb.net中的日期时间错误