2013-10-17 48 views
0

我想了解如何过滤数量,货币和日期列。我的货币示例代码:数字,货币和日期筛选

Private Sub HavaleSrcBtn_MouseDown(sender As Object, e As MouseEventArgs) Handles HavaleSrcBtn.MouseDown 

    Me.MakbuzTBindingSource.Filter = "havaleTutari LIKE '%" & HavaleSrcTb.Text & "%'" 

End Sub 

这段代码的程序崩溃:无法System.Decimal和System.String执行“喜欢”操作。整个细节在这里:http://sudrap.org/paste/text/256246/

我使用的是Visual Basic 2012.如何过滤这些类型的数据?

编辑:

Me.MakbuzTBindingSource.Filter = "havaleTutari = '" & CStr(HavaleSrcTb.Text) & "'" 

这工作得很好,但我不能使用通配符:

Me.MakbuzTBindingSource.Filter = "havaleTutari = 'ANY " & CStr(HavaleSrcTb.Text) & " ANY'" 
+0

可以分享多一点。我们不知道'MakbuzTBindingSource'可能是什么。你也没有分享你的异常日志。 –

+0

我添加了错误信息。我不知道该怎么告诉MakbuzTBindingSource。这是一个表绑定源。我的数据库是一个简单的mdb数据库。谢谢您的回答。 – nikel

+1

无法对System.Decimal和System.String执行'Like'操作。 –

回答

1

LIKE仅用于字符串(文本)数据。显然,不可能有另一个号码LIKE。 (什么会一些LIKE 1呢?1.110?)

对于数字,货币和日期列,使用>>==<=<,或BETWEEN Value1 AND Value2

(您也可以尝试阅读文档,其中指出这很清楚。同样重要的是要注意,Visual Studio是不是一种编程语言。如果你的问题是关于VB.NET,使用VB.NET标记。如果它是特定于MS - 访问数据库,使用ms-access标签。)

我不认为你需要CStr要么。一个简单的字符串连接应该工作得很好:

Me.HavaleScrTb.Text = '100' 
Me.MakbuzTBindingSource.Filter = "havaleTutari = " & HavaleSrcTb.Text 
+0

感谢您的详细解答。我更正了标签。你能给我一个示例代码吗? – nikel

+0

我不确定你要找什么“示例代码”我为你提供了所有的信息,只是放在你的代码中。你还需要什么? (我没有使用VB.NET,我没有你的表格,我也不知道列的数据类型,我也不知道你打算如何让'Mouse_Down'应用过滤器。每次按下鼠标按钮时是否需要新的过滤器?如果我是您的用户,在尝试使用您的应用程序约半秒后,我会非常恼火。) –