2 myqrbl myqrbl 于 2014.03.26 10:47 提问

C#调用MySql存储过程报错,请各位帮忙解答一下

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.

请各位帮忙解答,感激不尽 困扰好多天了

1个回答

ZR__MaNong
ZR__MaNong   2014.12.26 09:59

应该是ado。net链接错误

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!