存储过程其中参数SqlDbType

时间:2013-08-26 15:35:01

标签: sql-server vb.net

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

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

根据我测试的结果,如果我的值是@criteria字符串的一部分,数据会显示出来。因此,如果@criteria是'Name',那么只有当@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()

1 个答案:

答案 0 :(得分:1)

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