VS2008 报告使用参数化存储过程中的值
VS2008 report using values from a parametized Stored procedure
我想使用来自 SP 的值以及从数据网格行传递的参数值来生成显示单个员工工资单的报告。但是生成的报告是空白的。我错过了什么。下面是我的。
首先,我使用名为 "sqlselect"
的函数返回的值填充数据网格视图
Dim dbcall As New dbcalls
dtgPayslip_Old.DataSource = dbcall.sqlselect("empno AS Employee_Number,empname AS Employee_Name, date AS Date", "payrollarchiveview")
其次,我 select 来自数据网格视图的 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()
毕竟,我希望报告中包含员工的详细信息,但我得到的只是列标题。我该如何解决这个问题。感谢社区
对于具有Report Viewer控件的报表的Form Load事件,我在这个表单的TableAdapter中添加了一个参数
Me.TableAdapter.Fill(Me.DataSet.SP, paramenter)
对子项的 dbcall 是不必要的,因为参数值是在单击时直接从数据网格中获取的。
我想使用来自 SP 的值以及从数据网格行传递的参数值来生成显示单个员工工资单的报告。但是生成的报告是空白的。我错过了什么。下面是我的。
首先,我使用名为 "sqlselect"
的函数返回的值填充数据网格视图Dim dbcall As New dbcalls
dtgPayslip_Old.DataSource = dbcall.sqlselect("empno AS Employee_Number,empname AS Employee_Name, date AS Date", "payrollarchiveview")
其次,我 select 来自数据网格视图的 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()
毕竟,我希望报告中包含员工的详细信息,但我得到的只是列标题。我该如何解决这个问题。感谢社区
对于具有Report Viewer控件的报表的Form Load事件,我在这个表单的TableAdapter中添加了一个参数
Me.TableAdapter.Fill(Me.DataSet.SP, paramenter)
对子项的 dbcall 是不必要的,因为参数值是在单击时直接从数据网格中获取的。