关于调用存储过程返回参数的问题。
public static DataSet RunProcedurePage(string storedProcName, IDataParameter[] parameters, string tableName, out int recordCount, out int pageCount)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet dataSet = new DataSet();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.Fill(dataSet, tableName);
recordCount = (int)sqlDA.SelectCommand.Parameters["@RecordCount"].Value;
pageCount = (int)sqlDA.SelectCommand.Parameters["@PageCount"].Value;
string xx = sqlDA.SelectCommand.Parameters["@str"].Value.ToString();
connection.Close();
return dataSet;
}
}
用这种方法 recordCount =2,pageCount =2 ,xx =output
直接 SqlCommand command = new SqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@Tables", SqlDbType.VarChar));
command.Parameters[0].Value = "FileList"; 省略。。。。。
SqlDataAdapter sqlDA = new SqlDataAdapter(command);
sqlDA.Fill(dataSet, tableName);
recordCount = (int)command.Parameters["@RecordCount"].Value;
pageCount = (int)command.Parameters["@PageCount"].Value;
string xx = command.Parameters["@str"].Value.ToString();
这样返回的值就是正常的 。。。。。。就是传入parameters 就不行 。直接添加 parameters就得到正确的返回值
传入的parameters 跟直接写的是一模一样的。 两者dataSet 都有数据返回而且数据是一致的。就是第一个得不到返回参数。求解
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet dataSet = new DataSet();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.Fill(dataSet, tableName);
recordCount = (int)sqlDA.SelectCommand.Parameters["@RecordCount"].Value;
pageCount = (int)sqlDA.SelectCommand.Parameters["@PageCount"].Value;
string xx = sqlDA.SelectCommand.Parameters["@str"].Value.ToString();
connection.Close();
return dataSet;
}
}
用这种方法 recordCount =2,pageCount =2 ,xx =output
直接 SqlCommand command = new SqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@Tables", SqlDbType.VarChar));
command.Parameters[0].Value = "FileList"; 省略。。。。。
SqlDataAdapter sqlDA = new SqlDataAdapter(command);
sqlDA.Fill(dataSet, tableName);
recordCount = (int)command.Parameters["@RecordCount"].Value;
pageCount = (int)command.Parameters["@PageCount"].Value;
string xx = command.Parameters["@str"].Value.ToString();
这样返回的值就是正常的 。。。。。。就是传入parameters 就不行 。直接添加 parameters就得到正确的返回值
传入的parameters 跟直接写的是一模一样的。 两者dataSet 都有数据返回而且数据是一致的。就是第一个得不到返回参数。求解
...全文
相关推荐
PHP调用存储过程返回值不一致问题的解决方法分析
主要介绍了PHP调用存储过程返回值不一致问题的解决方法,结合实例形式分析了存储过程调用返回值不一致的原因与解决方法,需要的朋友可以参考下
Delphi中调用oracle的存储过程返回数据集
介绍了Delphi中调用oracle的存储过程返回数据集的各种方法
Mybatis传list参数调用oracle存储过程的解决方法
怎么利用MyBatis传List类型参数到数据库存储过程中实现批量插入数据?接下来通过本文给大家介绍Mybatis传list参数调用oracle存储过程,需要的朋友可以参考下
java调用存储过程(含out参数)
java调用存储过程的方法,含还有out参数的存储过程,解决方案,在网上找了n久发现这样的资源太少,现在总结一下我的解决方案供大家分享,希望对大家有用
MyBatis调用存储过程
怎么使用MyBatis调用存储过程,步骤详细清楚,一看就会配置



