CREATE PROCEDURE [dbo].[get_winnumber]
@winNum int
ASSelect W.* From runNum R Inner Join winNum W ON
R.[runNum]=W.[winNum] Where R.state=0if(@@RowCount=1)
begin
update runNum set state=1 where [runNum]=@winNum
end
GO
错误如下:
过程 'get_winnumber' 需要参数 '@winNum',但未提供该参数。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 过程 'get_winnumber' 需要参数 '@winNum',但未提供该参数。源错误:
行 66: DbCommand dbCommand = db.GetStoredProcCommand("get_winnumber");
行 67:
行 68: DataRow dr = db.ExecuteDataSet(dbCommand).Tables[0].Rows[0];
行 69:
行 70: WinInfo winnum = new WinInfo((Guid)dr["id"], (int)dr["winNum"], dr["winMessage"].ToString(),(bool)dr["winType"]);
@winNum int
ASSelect W.* From runNum R Inner Join winNum W ON
R.[runNum]=W.[winNum] Where R.state=0if(@@RowCount=1)
begin
update runNum set state=1 where [runNum]=@winNum
end
GO
错误如下:
过程 'get_winnumber' 需要参数 '@winNum',但未提供该参数。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 过程 'get_winnumber' 需要参数 '@winNum',但未提供该参数。源错误:
行 66: DbCommand dbCommand = db.GetStoredProcCommand("get_winnumber");
行 67:
行 68: DataRow dr = db.ExecuteDataSet(dbCommand).Tables[0].Rows[0];
行 69:
行 70: WinInfo winnum = new WinInfo((Guid)dr["id"], (int)dr["winNum"], dr["winMessage"].ToString(),(bool)dr["winType"]);
@winNum int =1--=1 是默认值,你要运行 存储过程时 传入参数
ASSelect W.* From runNum R Inner Join winNum W ON
R.[runNum]=W.[winNum] Where R.state=0if(@@RowCount=1)
begin
update runNum set state=1 where [runNum]=@winNum
end
GO比如:
exec [dbo].[get_winnumber] 2 --这个2 就是参数,传给@winNum
dbCommand.Parameters.Add("@winNum", 20);
你需要给存储过程中的参数@winNum来指定相应的值,可是你没有,所以报错了 。
@winNum integer
ASSelect W.* From runNum R Inner Join winNum W ON
R.[runNum]=W.[winNum] Where R.state=0if(@@RowCount=1)
begin
update runNum set state=1 where [runNum]=@winNum
end
GO访问时需要提供winNum的值
........SqlCommand cmd = new SqlCommand("adduser", con);
cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.VarChar,32));
cmd.Parameters["@name"].Value = name;
..................................................
如上面代码片段所示,希望你能理解!