0

我有一个组合框和一个文本框。我对@criteria 使用组合框值,对@value 使用texbox 值,但是当我执行此操作时,没有显示任何数据。我已经分析问题在:

    select * from Table where @criteria like '%'+@value+'%'

根据我的测试,如果我的值是@criteria 字符串的一部分,数据就会显示出来。因此,如果@criteria 是“名称”,那么只有当@value 是“n”或“a”或“m”或“e”时才会显示数据

我怎样才能让它工作?

OpenConn()
    Cmd.CommandType = CommandType.StoredProcedure
    Cmd.CommandText = "Find"
    Cmd.Parameters.Clear()
    Cmd.Parameters.Add("@Criteria", SqlDbType.varchar).Value = CmbCriteria.Text
    Cmd.Parameters.Add("@Value", SqlDbType.VarChar).Value = TxtValue.Text
    Dr = Cmd.ExecuteReader
    ListView1.Items.Clear()
    Do While Dr.Read
        Dim lv As ListViewItem
        lv = ListView1.Items.Add(Dr("No"))
        lv.SubItems.Add(Dr("Name"))
        lv.SubItems.Add(Dr("Address"))
    Loop
CloseConn()
4

1 回答 1

1

我想也许您期望“@criteria”将是您的数据库字段名称。ADO.NET(以及几乎所有现代数据库访问方法)中的参数指的是数据值,并且永远不能用作数据库字段名称。

于 2013-08-26T17:00:47.967 回答