我想生成一个报告,显示单个员工使用来自SP的值以及从数据网格行传递的参数值的工资单。但是,生成的报告是空白的。我错过了什么以下是我所拥有的。
首先,我使用名为" sqlselect"
的函数返回的值填充数据网格视图。Dim dbcall As New dbcalls
dtgPayslip_Old.DataSource = dbcall.sqlselect("empno AS Employee_Number,empname AS Employee_Name, date AS Date", "payrollarchiveview")
其次我从datagrid视图中选择empno作为我传递给SP的参数值
Private Sub dtgPayslip_Old_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dtgPayslip_Old.CellDoubleClick
Dim dbcall As New dbcalls
Dim empno As String = dtgPayslip_Old.Item(0, dtgPayslip_Old.CurrentRow.Index).Value.ToString()
dbcall.CallparametizedSP("payrollarchivedataview", "@e", empno)
进行数据库调用的子
Public Sub CallparametizedSP(ByVal procedureName As String, ByVal parameter As String, ByVal value As String)
conn.Open()
cmd.Parameters.AddWithValue(parameter, value)
cmd.Connection = conn
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = procedureName
cmd.CommandTimeout = 6000
cmd.ExecuteScalar()
cmd.Dispose()
conn.Close()
毕竟,我希望员工的详细信息能够进入报告,但我得到的只是列标题。我该如何解决这个问题。谢谢社区
答案 0 :(得分:0)
对于具有Report Viewer控件的报表的Form Load事件,我在此表单中向TableAdapter添加了一个参数
Me.TableAdapter.Fill(Me.DataSet.SP, paramenter)
dbcall到sub是不必要的,因为参数值是在点击时直接从datagrid获得的。