OdbcDataReader 在执行时看不到参数
OdbcDataReader not able to see parameters when executed
尝试执行存储过程时 using System.Data.Odbc;
我的应用程序崩溃,因为它无法找到参数 "@report"
。
这是我的代码:
DataTable information = new DataTable();
OdbcCommand cmd = new OdbcCommand(@"usp_BS_REPORT_LINE_LIST", _conn);
cmd.CommandType = CommandType.StoredProcedure;
OdbcParameter parameter = new OdbcParameter("@report",OdbcType.VarChar);
parameter.Value = "rep1";
cmd.Parameters.Add(parameter);
_conn.Open();
OdbcDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
information.Load(dataReader);
}
_conn.Close();
如您所见,我已经声明了参数,我该如何解决这个问题?
确切的错误信息:
ERROR [42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Procedure or function 'usp_BS_REPORT_LINE_LIST' expects parameter '@report', which was not supplied.
编辑:
根据史蒂夫的要求,程序
CREATE PROC dbo.usp_BS_REPORT_LINE_LIST
@report varchar(128) -- report to display
AS
SET NOCOUNT ON
SELECT
s.REPORT_SECTION_NAME, l.REPORT_LINE_NAME, l.REPORT_LINE_USER_NAME
FROM
BS_REPORT r
INNER JOIN BS_REPORT_SECTION s ON s.BS_REPORT_ID=r.BS_REPORT_ID
INNER JOIN BS_REPORT_LINE l ON l.BS_REPORT_SECTION_ID=s.BS_REPORT_SECTION_ID
WHERE
r.REPORT_NAME=@report
ORDER BY
s.BS_REPORT_SECTION_ID, l.REPORT_LINE_NAME
RETURN 0
GO`
你试过更换
OdbcCommand cmd = new OdbcCommand(@"usp_BS_REPORT_LINE_LIST", _conn);
有
OdbcCommand cmd = new OdbcCommand("{call usp_BS_REPORT_LINE_LIST(?)}", _conn);
尝试执行存储过程时 using System.Data.Odbc;
我的应用程序崩溃,因为它无法找到参数 "@report"
。
这是我的代码:
DataTable information = new DataTable();
OdbcCommand cmd = new OdbcCommand(@"usp_BS_REPORT_LINE_LIST", _conn);
cmd.CommandType = CommandType.StoredProcedure;
OdbcParameter parameter = new OdbcParameter("@report",OdbcType.VarChar);
parameter.Value = "rep1";
cmd.Parameters.Add(parameter);
_conn.Open();
OdbcDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
information.Load(dataReader);
}
_conn.Close();
如您所见,我已经声明了参数,我该如何解决这个问题?
确切的错误信息:
ERROR [42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Procedure or function 'usp_BS_REPORT_LINE_LIST' expects parameter '@report', which was not supplied.
编辑: 根据史蒂夫的要求,程序
CREATE PROC dbo.usp_BS_REPORT_LINE_LIST
@report varchar(128) -- report to display
AS
SET NOCOUNT ON
SELECT
s.REPORT_SECTION_NAME, l.REPORT_LINE_NAME, l.REPORT_LINE_USER_NAME
FROM
BS_REPORT r
INNER JOIN BS_REPORT_SECTION s ON s.BS_REPORT_ID=r.BS_REPORT_ID
INNER JOIN BS_REPORT_LINE l ON l.BS_REPORT_SECTION_ID=s.BS_REPORT_SECTION_ID
WHERE
r.REPORT_NAME=@report
ORDER BY
s.BS_REPORT_SECTION_ID, l.REPORT_LINE_NAME
RETURN 0
GO`
你试过更换
OdbcCommand cmd = new OdbcCommand(@"usp_BS_REPORT_LINE_LIST", _conn);
有
OdbcCommand cmd = new OdbcCommand("{call usp_BS_REPORT_LINE_LIST(?)}", _conn);