我有一个组合框和一个文本框。 我使用@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()
答案 0 :(得分:1)
我想也许您期望“@criteria”将成为您的数据库字段名称。 ADO.NET中的参数(以及几乎所有现代数据库访问方法)都是指数据值,绝不能用作数据库字段名。