我有一个组合框和一个文本框。我使用combobox值表示@criteria,使用文本框值表示@value,但是当我执行该值时,没有显示数据。我已经分析了问题所在:
select * from Table where @criteria like '%'+@value+'%'从我测试的结果来看,如果我的值是@字符串的一部分,数据就会显示出来。因此,如果“标准”是“名称”,那么只有当@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()发布于 2013-08-26 17:00:47
我想您可能是在期待"@criteria“将是您的数据库字段名。ADO.NET中的参数(以及几乎所有现代数据库访问方法中的参数)引用数据值,永远不能用作数据库字段名。
https://stackoverflow.com/questions/18447782
复制相似问题