问题描述
publicstaticDataSetRunProcedurePage(stringstoredProcName,IDataParameter[]parameters,stringtableName,outintrecordCount,outintpageCount){using(SqlConnectionconnection=newSqlConnection(connectionString)){DataSetdataSet=newDataSet();connection.Open();SqlDataAdaptersqlDA=newSqlDataAdapter();sqlDA.SelectCommand=BuildQueryCommand(connection,storedProcName,parameters);sqlDA.Fill(dataSet,tableName);recordCount=(int)sqlDA.SelectCommand.Parameters["@RecordCount"].Value;pageCount=(int)sqlDA.SelectCommand.Parameters["@PageCount"].Value;stringxx=sqlDA.SelectCommand.Parameters["@str"].Value.ToString();connection.Close();returndataSet;}}用这种方法recordCount=2,pageCount=2,xx=output直接SqlCommandcommand=newSqlCommand(storedProcName,connection);command.CommandType=CommandType.StoredProcedure;command.Parameters.Add(newSqlParameter("@Tables",SqlDbType.VarChar));command.Parameters[0].Value="FileList";省略。。。。。SqlDataAdaptersqlDA=newSqlDataAdapter(command);sqlDA.Fill(dataSet,tableName);recordCount=(int)command.Parameters["@RecordCount"].Value;pageCount=(int)command.Parameters["@PageCount"].Value;stringxx=command.Parameters["@str"].Value.ToString();这样返回的值就是正常的。。。。。。就是传入parameters就不行。直接添加parameters就得到正确的返回值传入的parameters跟直接写的是一模一样的。两者dataSet都有数据返回而且数据是一致的。就是第一个得不到返回参数。求解
解决方案
本帖最后由 vikingleo 于 2014-08-22 10:34:27 编辑
解决方案二:
解决方案三:
sqlDA.SelectCommand=BuildQueryCommand(connection,storedProcName,parameters);在这里,你确定存储过程与参数相关联了吗?问题就在这,你在仔细看一看
解决方案四:
BuildQueryCommand(SqlConnectioncon,stringstoredProcName,SqlParameter[]parameters){SqlCommandcmd=newSqlCommand();if(conn.State!=ConnectionState.Open)conn.Open();cmd.Connection=conn;cmd.CommandText=storedProcName;cmd.CommandType=CommandType.StoredProcedure;//cmdType;if(cmdParms!=null){foreach(SqlParameterparameterincmdParms){if((parameter.Direction==ParameterDirection.InputOutput||parameter.Direction==ParameterDirection.Input)&&(parameter.Value==null)){parameter.Value=DBNull.Value;}cmd.Parameters.Add(parameter);}}}这个是根据你的修改的,具体的你在看一下。
解决方案五:
引用2楼wangjia1991的回复:
sqlDA.SelectCommand=BuildQueryCommand(connection,storedProcName,parameters);在这里,你确定存储过程与参数相关联了吗?问题就在这,你在仔细看一看
就是你的这种写法。DataSet都有数据。难道还没关联?
解决方案六:
参数定义的时候,没有指明是输出参数吧
解决方案七:
g改成SqlParameter[]parameters)就可以了