Array
(
)

Metodos de retorno cSharp

Regis
   - 09 jun 2013

Olá a todos
Será que alguém poder me dar uma dica de como fazer isso corretamente.
Abaixo tenho esses métodos de retornos na classe porem um não funciona ou ultimo fnc_retornaDataset
O que pode estar errado aqui ?

//Aqui funciona
#region retorna dataReader
public SqlDataReader fnc_retornaDataReader(string sql)
{
SqlConnection conexao = new SqlConnection(connstring);
conexao.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sql.ToString();
cmd.Connection =conexao ;
SqlDataReader sqlReader = cmd.ExecuteReader();
return sqlReader;

}
#endregion

#region retornaDatatable //Aqui funciona
public DataTable fnc_RetornaDataTable(string sql)
{
SqlConnection conexao = new SqlConnection(connstring);
SqlCommand comando = conexao.CreateCommand();
comando.CommandText = sql;
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
DataTable tabela = new DataTable();
conexao.Open();
adaptador.Fill(tabela);
conexao.Close();
return tabela;
}
#endregion

//Aqui não funciona
#region retornaDataset
public DataSet fnc_retornaDataSet( string sql ) {
SqlConnection conexao = new SqlConnection(connstring);
conexao.Open();
SqlCommand cmd = conexao.CreateCommand();
cmd.CommandText = sql;
cmd.Connection = conexao;
SqlDataReader sqlReader = cmd.ExecuteReader();
SqlDataAdapter dtAdapter = new SqlDataAdapter();
DataSet dsDataset = new DataSet() ;
dtAdapter.SelectCommand =cmd;
dtAdapter.Fill(dsDataset) ;
return dsDataset;

}
#endregion

Da erros dizendo que já existe um datareader aberto

Joel Rodrigues
   - 09 jun 2013

Na connection string, insira o parâmetro MultipleActiveResultSets=True.
Link de referência:http://msdn.microsoft.com/en-us/library/h32h3abf(v=vs.80).aspx