Metodos de retorno cSharp
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
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
Carlos Faria
Curtidas 0
Respostas
Joel Rodrigues
09/06/2013
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]
Link de referência:[url]http://msdn.microsoft.com/en-us/library/h32h3abf(v=vs.80).aspx[/url]
GOSTEI 0