我在将存储过程参数传递给crystal report时遇到问题。我尝试传递参数,但结果不像我预期的那样。参数可以传递,但问题是参数的值必须正好是参数的值。在我的情况下,我想制作能够显示报告的报告" like"查询,因此参数可以是实数值上的一个,两个或其他字母。
我尝试过使用该组并在选择公式中记录,但结果相同,参数必须与该值完全相同,并且不能只是该值的字母成员的一部分。
我的桌子可能有点像这样:
employee table
-----------------------
id | name | address |
01 | Chloe| St. Rose |
我的sql可能有点像这样:
create proc sp_search @name varchar(50), @address varchar(50) as select * from employee where name like '%'+@name+'%' and address like '%'+@address+'%'
用于传递参数的.net代码:
Sub show_search_employee() With Me Dim report As New employee_report report.SetDataSource(ds) report.SetParameterValue("@name", name.text) //name parameter report.SetParameterValue("@address", address.Text) //address parameter form_employee_report.crv_employee.ReportSource = report //set report source End With End Sub
我的水晶报告公式(我只需双击数据库字段,输入' =',然后双击参数)
{sp_employee_report;1.name} like {?@name} and
{sp_employee_report;1.address} like {?@address}
如果name参数和地址参数恰好是值,则可以显示结果,如果我想要显示' 01',我必须输入名称和地址'克洛伊'和' st。玫瑰&#39 ;.如果我只是设置名称' C'或地址“玫瑰”,没有显示任何价值。我想设置名称参数就像' C'或者' Ch'显示第一行,就像' Like'函数从sql工作。 谢谢你的回复