如何在dbase中过滤日期 [英] How to filter the date in dbase

查看:108
本文介绍了如何在dbase中过滤日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的,



我想访问dbase数据库并在.Net中填写DataGridView。当我尝试这个代码与传递日期值克劳斯没有过滤,但没有克劳斯其工作正常。请帮助这个



谢谢

Basit



 尝试 
Dim ConnectionString As 字符串
ConnectionString = Provider = vfpoledb;数据源= D:\ ATTEND.DBF;整理顺序=机器;
Dim dBaseConnection As System.Data.OleDb.OleDbConnection(ConnectionString)
dBaseConnection.Open()
Dim dataadapter As System.Data.OleDb。 OleDbDataAdapter( SELECT * FROM ATTEND.DBF#& Format(今天。日期, mm / dd / yy)& #和#&格式(今天。日期 mm / dd / yy )& ,dBaseConnection)
' Dim dataadapter As New System.Data.OleDb.OleDbDataAdapter(SELECT * FROM ATTEND.DBF,dBaseConnection)
Dim ds As DataSet()
dataadapter.Fill (ds, ATTEND
DataGridView1.DataSource = ds
DataGridView1。 DataMember = ATTEND
dBaseConnection.Close()
Catch ex As 例外

结束 尝试

解决方案

问题是dBase / xBase没有支持SQL之间的之间日期



试试这个:



引用:

date =#&格式(Today.Date,mm / dd / yy)& #


修复 SQL注入 [ ^ ]漏洞,请使用参数化查询:

 使用 dBaseConnection 作为  OleDbConnection(ConnectionString)
使用 dBaseCommand 作为 OleDbCommand( SELECT * FROM ATTEND.DBF其中date =?,dBaseConnection)
dBaseCommand.Parameters.AddWithValue( p0,DateTime.Today)

Dim ds As DataSet()
Dim dataadapter 作为 OleDbDataAdapter(dBaseCommand)
dataadapter.Fill(ds, ATTEND

DataGridView1.DataSource = ds
DataGridView1.DataMember = ATTEND
结束 使用
结束 使用


Dear,

I want to access dbase database and fill in DataGridView in .Net. When i tried this code with passing date value in where Claus not filtering, but without where Claus its working fine. Please help on this

Thanks
Basit

Try
    Dim ConnectionString As String
    ConnectionString = "Provider=vfpoledb;Data Source=D:\ATTEND.DBF;Collating Sequence=machine;"
    Dim dBaseConnection As New System.Data.OleDb.OleDbConnection(ConnectionString)
    dBaseConnection.Open()
    Dim dataadapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM ATTEND.DBF Where date between #" & Format(Today.Date, "mm/dd/yy") & "# and #" & Format(Today.Date, "mm/dd/yy") & "#", dBaseConnection)
    'Dim dataadapter As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM ATTEND.DBF", dBaseConnection)
    Dim ds As New DataSet()
    dataadapter.Fill(ds, "ATTEND")
    DataGridView1.DataSource = ds
    DataGridView1.DataMember = "ATTEND"
    dBaseConnection.Close()
Catch ex As Exception

End Try

解决方案

The problem is that dBase/xBase doesn't support "between" for SQL dates

Try this:

Quote:

date = #" & Format(Today.Date, "mm/dd/yy") & "#


To fix the SQL Injection[^] vulnerability in your code, use a parameterized query:

Using dBaseConnection As New OleDbConnection(ConnectionString)
    Using dBaseCommand As New OleDbCommand("SELECT * FROM ATTEND.DBF Where date = ?", dBaseConnection)
        dBaseCommand.Parameters.AddWithValue("p0", DateTime.Today)
        
        Dim ds As New DataSet()
        Dim dataadapter As New OleDbDataAdapter(dBaseCommand)
        dataadapter.Fill(ds, "ATTEND")
        
        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "ATTEND"
    End Using
End Using


这篇关于如何在dbase中过滤日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆