2013-10-04 33 views
0

我做了一个简单的程序为一个寄宿家庭,我想从我的Oracle数据库表中选择数据表名tblTransaction其中日期在我的另一个DateTimePickers之间表格,名为FormTransaction,那么我希望所选行的信息能显示在我的listview中。我怎样才能选择两个日期之间的记录vb.net

关于如何解决这个问题的任何建议?任何帮助将不胜感激。

这里是我的代码:

Call connect() 
getsql("SELECT * FROM tblTransaction WHERE Trans_Date > '" & 
CDate(FormTransaction.date1.Text) & "' AND Trans_Date <'" & 
CDate(FormTransaction.date2.Text) & "'") 

    While dr.Read 
     Dim lv As ListViewItem = lvTrans.Items.Add(dr("Transaction_Num")) 
     With lv.SubItems 
      .Add(dr("Boarder_ID")) 
      .Add(dr("Trans_Date")) 

     End With 

    End While 

    con.Close() 
+2

老实说,我会避免使用连接字符串来构建你的SQL。使用[参数化](http://support.microsoft.com/kb/240337)查询和/或[存储过程](http://docs.oracle.com/cd/B19306_01/server)会更好。 102/b14200/statements_6009.htm) – Paul

+0

与Westie交易 - 您不必再将日期翻译成字符串,然后再返回,并且不会受到SQL注入攻击的影响,而且您不会强制数据库以硬解析提交给它的每个查询。 –

回答

0

您可以使用Oracle的to_date函数。为了使用它,你需要确定输入字符串的格式。假设它是'DD/MM/YYYY HH:MI:SS AM';你可以尝试 -

to_date(CDate(FormTransaction.date1.Text),'DD/MM/YYYY HH:MI:SS AM') 
+0

非常感谢你,我如何将它插入我的代码?我收到'to_date'这行错误。 –

+0

其实我不知道VB.net。但基于你的代码,就像你如何将sql代码保存在双引号和vb代码中一样。同样你可以保留给定的代码。 –

相关问题