3

我有 Sql 表 Tracks,它保存 TrackID 和 TrackName 等跟踪信息。我有带有文本框和列表框的 c# 应用程序。我使用 dataSet 来检索 sql 表,当我在文本框上写“3”时,我想在 TrackID 为“3”的列表框中获取轨道名称。我的代码如下:

lbxTracks.DataSource = new DataView(das.Tables[0], "TrackID LIKE " + idNo.ToString(), "TrackName", DataViewRowState.CurrentRows);

但是我收到一个错误,因为 LIKE 函数不能在 System.Int32 上使用。

有任何想法吗?

4

3 回答 3

4

我不知道有任何其他方法可以在字符串中包含类似ToString()方法的内容,但这种方式可以工作:ExpressionRowFilter

lbxTracks.DataSource = new DataView(das.Tables[0], "TrackID + '' LIKE '" + idNo + "'", "TrackName", DataViewRowState.CurrentRows);

请注意+ ''这将TrackIDstring执行LIKE. 它就像一个魅力。如果有人知道在字符串ToString()中的列上执行某些操作的另一种方法,请在下面发表评论。RowFilter我真的很感激 :)

您应该使用string.Format()来连接字符串,并注意使用%inLIKE表达式。=我认为在这种情况下,如果您只想比较值的相等性(而不是格式),您可能需要使用正确的运算符(对于数字来说可以)。

于 2013-08-21T18:39:27.637 回答
2

只需使用=运算符:

"TrackID = "

无论如何,这才是你真正想要的。

于 2013-08-21T17:43:01.737 回答
0

使用单引号和 '%' 作为

lbxTracks.DataSource = new DataView(das.Tables[0], 
                       "TrackID LIKE '%" + idNo + "%'", 
                       "TrackName", DataViewRowState.CurrentRows);

希望能帮助到你..

参考

行过滤器

于 2013-08-21T17:45:37.260 回答