使用datetimepicker搜索时遇到问题! [英] I have a problem when search with datetimepicker !

查看:99
本文介绍了使用datetimepicker搜索时遇到问题!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨朋友们!

我在使用DateTimePicker1,DateTimePicker2,Textbox1在datagridview中搜索时遇到问题。

DateTimePicker1:DATE_FROM

DateTimePicker2 :DATE_TO

Textbox1:NUMBER_RECEIPT



我从01/01/2017选择DateTimePicker1和DateTimePicker2到2017年9月25日并显示:< br $> b $ b

| NUMBER_RECEIPT |日期|说明|

| 12 | 12/09/2017 |第14项|

| 12 | 12/09/2017 |第15项|

| 13 | 2017/09/09 |第23项|

| 14 | 25/09/2017 |第31项|



当我从2017年9月17日选择DateTimePicker1并且DateTimePicker2到2017年9月25日时显示:



| NUMBER_RECEIPT |日期|说明|

| 13 | 2017/09/09 |第23项|

| 14 | 25/09/2017 |第31项|



我在2017年9月17日至2017年9月25日选择日期后用 Textbox1 搜索我的问题: 12



| NUMBER_RECEIPT |日期|说明|

| 12 | 12/09/2017 |第14项|

| 12 | 12/09/2017 |项目15 |



NUMBER_RECEIPT 12不是从2017年9月17日到2017年9月25日。



我尝试了什么:



我尝试了不同的方式,但没有结果。



 私有  Sub  TextBox1_KeyDown( ByVal  sender 作为 对象 ByVal  e  As  System.Windows.Forms.KeyEventArgs)句柄 TextBox1.KeyDown 
选择 案例 e.KeyCode
案例 Keys.Enter
BindingSource18.Filter = [NUMBER_RECEIPT] LIKE' &安培; TextBox1.Text& %'
结束 选择
结束 Sub





 私人  Sub  DateTimePicker1_ValueChanged( ByVal  sender  As  System。 对象 ByVal  e  As  System.EventArgs )句柄 DateTimePicker1.ValueChanged 
Me .BindingSource18.Filter = DATE_FROM> ='& DateTimePicker1.Text& '和DATE_TO< ='& DateTimePicker2.Text& '
结束 Sub





 私有  Sub  DateTimePicker2_ValueChanged( ByVal  sender 作为系统。对象 ByVal  e  As  System.EventArgs)句柄 DateTimePicker2.ValueChanged 
Me .BindingSource18.Filter = DATE_FROM> ='& DateTimePicker1.Text& '和DATE_TO< ='& DateTimePicker2.Text& '
结束 Sub





请帮帮我吗?谢谢:)

解决方案

同一主题的另一个变种! :)

 私人  Sub  UpdateFilter()
Dim 部分作为 List( Of String )()

如果 字符串 .IsNullOrWhiteSpace(TextBox1.Text)然后
parts.Add( [NUMBER_RECEIPT] LIKE '& TextBox1.Text& %'
结束 如果
如果 DateTimePicker1 .Checked 然后
parts.Add( string .Format( [DATE_FROM]> =#{0:yyyy / MM / dd}#,DateTimePicker1.Value))
结束 如果
如果 DateTimePicker2.Checked 那么
parts.Add( string .Format( [DATE_FROM]< =#{0:yyyy / MM / dd}#,DateTimePicker2.Value))
结束 如果

如果 parts.Count = 0 然后
BindingSource18.Filter =
否则
BindingSource18.Filter = String .Join( AND,parts)
结束 如果
结束 Sub

私有 Sub FilterChanged(< span class =code-keyword> ByVal sender 作为 对象 ByVal e As EventArgs)句柄 TextBox1.KeyDown,DateTimePicker1。 ValueChanged,DateTimePicker2.ValueChanged
UpdateFilter()
结束 Sub


Hi friends!
I have a problem when I search in datagridview with DateTimePicker1, DateTimePicker2, Textbox1.
DateTimePicker1 : DATE_FROM
DateTimePicker2 : DATE_TO
Textbox1 : NUMBER_RECEIPT

I choose DateTimePicker1 from 01/01/2017 and DateTimePicker2 to 25/09/2017 and show:

| NUMBER_RECEIPT | DATE | DESCRIPTIONS |
| 12 | 12/09/2017 | Item 14 |
| 12 | 12/09/2017 | Item 15 |
| 13 | 17/09/2017 | Item 23 |
| 14 | 25/09/2017 | Item 31 |

When I choose DateTimePicker1 from 17/09/2017 and DateTimePicker2 to 25/09/2017 show:

| NUMBER_RECEIPT | DATE | DESCRIPTIONS |
| 13 | 17/09/2017 | Item 23 |
| 14 | 25/09/2017 | Item 31 |

My problem showed when I search with Textbox1 after choose date from 17/09/2017 to 25/09/2017: 12

| NUMBER_RECEIPT | DATE | DESCRIPTIONS |
| 12 | 12/09/2017 | Item 14 |
| 12 | 12/09/2017 | Item 15 |

NUMBER_RECEIPT 12 is not from 17/09/2017 to 25/09/2017 .

What I have tried:

I tried different way but without result.

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    Select Case e.KeyCode
        Case Keys.Enter
        BindingSource18.Filter = "[NUMBER_RECEIPT] LIKE '" & TextBox1.Text & "%'"
    End Select
End Sub



Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
        Me.BindingSource18.Filter = "DATE_FROM >= '" & DateTimePicker1.Text & "' and DATE_TO <= '" & DateTimePicker2.Text & "'"
End Sub



Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
        Me.BindingSource18.Filter = "DATE_FROM >= '" & DateTimePicker1.Text & "' and DATE_TO <= '" & DateTimePicker2.Text & "'"
End Sub



Please can you help me? THANKS :)

解决方案

Another variation on the same theme! :)

Private Sub UpdateFilter()
    Dim parts As New List(Of String)()
    
    If Not String.IsNullOrWhiteSpace(TextBox1.Text) Then
        parts.Add("[NUMBER_RECEIPT] LIKE '" & TextBox1.Text & "%'")
    End If
    If DateTimePicker1.Checked Then
        parts.Add(string.Format("[DATE_FROM] >= #{0:yyyy/MM/dd}#", DateTimePicker1.Value))
    End If
    If DateTimePicker2.Checked Then
        parts.Add(string.Format("[DATE_FROM] <= #{0:yyyy/MM/dd}#", DateTimePicker2.Value))
    End If
    
    If parts.Count = 0 Then
        BindingSource18.Filter = ""
    Else
        BindingSource18.Filter = String.Join(" AND ", parts)
    End If
End Sub

Private Sub FilterChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.KeyDown, DateTimePicker1.ValueChanged, DateTimePicker2.ValueChanged
    UpdateFilter()
End Sub


这篇关于使用datetimepicker搜索时遇到问题!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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