sonyz1平板电脑:关于存储过程中参数调用的问题!!!

来源:百度文库 编辑:高考问答 时间:2024/04/25 16:14:52
请问,有没那位兄弟姐妹知道:
在一个存储过程调用另一个存储过程中,怎么将被调用的存储过程中的输出参数传出来?可否用一个具体一点的例子指点下小弟。谢谢

该存储过程是分页用的,所以必须固定查询参数

  ------------其VB.NET参数语句如下

  cmd2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@tel", SqlDbType.VarChar)).Value = cs_tel

  其中@tel在为存储过程输入参数,其定义是@tel VarChar(20)

  cs_tel的来源代码是:

  If Request.Form("tel") <> "" Then
  cs_tel = Request.Form("tel")
  Else
  cs_tel = "1"
  End If

  ------------存储过程中的查询语句是

  select id from kl10000 where tel like @tel+'%' order by tel desc
  --------------------------------------------------------------------

  可是现在我在表单无论输入什么数字,得到的都只是包含第一个数字的结果,
  比如,我输入2568,查询,得到的却是开头包含"2"的所有结果,而非开头包含"2568"的所有结果..
  咋回事呢?

  回复人:singlepine(小山) 2005-05-08 18:45:00 得分:0

  ? 改为select id from kl10000 where tel like '%'+@tel+'%' order by tel desc

  Top

  回复人:mg42(曼斯坦因) 2005-05-08 20:55:00 得分:0

  ? 谢谢指点

  问题是我对"tel"字段建立了索引,象上面这样搜索的话, 上百万记录会很慢

  而且我在SQL里执行也是得到正确结果的,

  是不是问题出在
  cmd2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@tel", SqlDbType.VarChar)).Value = cs_tel

  这个语句上?

  Top

  回复人:hchxxzx(NET?摸到一点门槛) 2005-05-08 22:31:00 得分:0

  ? 可能,你可试着在传递值的时候,直接将值与%号连接在一起.
  cmd2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@tel", SqlDbType.VarChar)).Value = cs_tel + "%"

  Top

  回复人:dorisnet(啥都不会,郁闷!) 2005-05-08 22:55:00 得分:0

  ? 同意楼上的。。。

  Top

  回复人:hreoghost(纳闷猫..oО) 2005-05-09 23:26:00 得分:0

  ? 偶帮你UP...

  Top