public DataSet GetPagerList(string tableName, string primaryKey, string columns, string whereSql, string sortField, int? pageSize, int? currPage, bool isDesc)
{
MySqlParameter[] param = new MySqlParameter[]{
new MySqlParameter("TableName",tableName),
new MySqlParameter("PrimaryKey", primaryKey),
new MySqlParameter("Columns1", columns),
new MySqlParameter("WhereSql", whereSql),
new MySqlParameter("Sort", sortField),
new MySqlParameter("pagesize", pageSize),
new MySqlParameter("currpage", currPage),
new MySqlParameter("IsDesc", isDesc)
};
//return MySqlHelper_flag.GetDataSet("sp_GetPageRecord", param, "dataset");
return MySqlHelper_flag.GetDataSet(CommandType.StoredProcedure, "sp_GetPageRecord", "dataset", param);
}
这是传的参数。
try
{
//调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
PrepareCommand(cmd, conn, null, type, cmdText, param);
//调用 MySqlCommand 的 ExecuteReader 方法
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet();
ds.DataSetName = tablename;
adapter.Fill(ds);
//清除参数
cmd.Parameters.Clear();
conn.Close();
return ds;
}
这是调用存储过程的方法。
CREATE DEFINER=root
@127.0.0.1
PROCEDURE sp_GetPageRecord
(
TableName VARCHAR (500),
PrimaryKey VARCHAR (100),
columns1 VARCHAR (1000),
WhereSql VARCHAR (500),
Sort VARCHAR (100),
pagesize INT,
currpage INT,
IsDesc BIT
)
存储过程的参数定义。
然后在navicat里面call存储过程没有任何问题,同样的参数值。可是由系统传过去调存储过程就会报如下错误。
Parameter '?500' not found in the collection.
请各位帮忙解答,感激不尽 困扰好多天了