Metodos de retorno cSharp

09/06/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

Regis

Respostas

09/06/2013

Joel Rodrigues

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