请帮助解决2个问题:
1)如何使用vb.net将参数值传递给查询中使用的mysql过程?
2)同时将这些参数值传递给晶体报告文件,因为程序也填充了晶体报告数据
好的,这就是我所做的,我将需要的vb值发送到crystal report参数。现在,我正在尝试做的是将这个晶体参数发送到我的mysql程序
以下是我的新 vb.net代码,用于打印水晶报表并将值从文本框发送到水晶报表参数
Dim cryRpt As New ReportDocument
cryRpt.Load(Application.StartupPath & "\Reports\Report1.rpt")
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As ParameterFieldDefinition
Dim crParameterValues As New ParameterValues
Dim crParameterDiscreteValue As New ParameterDiscreteValue
crParameterDiscreteValue.Value = TextBox1.Text
crParameterFieldDefinitions = _
cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = _
crParameterFieldDefinitions.Item("controlid")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
With rptReport
.crReport1.ReportSource = cryRpt
.crReport1.Refresh()
End With
rptReport.Show()
这是我在mysql数据库上的新存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `sreadings`(IN `controlid` INT)
BEGIN
SELECT
a.controlid,
a.data1,
a.data2,
a.date1,
a.date2
FROM shifts AS a
WHERE a.controlid = @controlid;
END
但是加载报告会给我带来错误:
Failed to retrieve data from the database.
Details: [Database Vendor Code: 1318].
从存储过程中删除 IN controlid
INT 以及 WHERE a.day_id = @controlid 会删除错误,但我需要过滤我的数据由用户通过vb接口提供的 controlid 。
请输入任何内容?感谢