ASP.NET - Codigo Fonte (passo-a-passo[DEBUG]) sem sequencia logica
06/03/2015
0
Estou desenvolvendo no Visual Studio 2010. Crio o projeto. Mas qdo vou debugar o passo-a-passo dele, nao segue a sequencia do codigo.
Ele esta numa linha, depois volta, vai pra outro DAO, volta. As vezes passa 3 vezes no mesmo lugar, nesse vai e vem.. No fim, acaba funcionando.
Mas como estou fazendo conexao com o BD e ate em 2 BD diferentes, acontece o seguinte.
Tenho esse codigo por exemplo:
using (SqlConnection conexao = SistemaController.OpenSession()) { using (SqlCommand comando = conexao.CreateCommand()) { comando.CommandText = "Select * from BLABLABLA"; using (dr = comando.ExecuteReader()) { return CarregaObjeto(dr); } } }
Simples, estou abrindo uma conexao, fazendo um select e fechando. Mas enquanto esta abrindo a conexao "conecting", o codigo vai pra outro select, volta, ae da esse erro:
"ExecuteReader requires an open and available Connection. The connection's current state is connecting."
Estou usando uma conexao static, pois utilizo transactionScope. Enquanto estou abrindo uma conexao, o codigo vai pra outro DAO, fazendo uma nova conexao e tentando abrir..
Como se fosse assincrono.
Isso eh assim mesmo?
Ja adicionei na minha string de conexao "MultipleActiveResultSets=True;"
Tenho Alguns projetos no VS2010 mesmo, mas em C# e funciona certo. No ASP.NET nao.
Grato.
Edson Hashimoto
Posts
06/03/2015
Edson Hashimoto
private List<ReclamacaoMotivo> CarregaObjeto(SqlDataReader dr) { List<ReclamacaoMotivo> lista = new List<ReclamacaoMotivo>(); GCCustoDao gCCustoDao = new GCCustoDao(); ObservableCollection<GCCusto> gCCustos = gCCustoDao.Todos(); DataTable dt = new DataTable(); dt.Load(dr); foreach (DataRow row in dt.Rows) { ReclamacaoMotivo objeto = new ReclamacaoMotivo(); objeto.CodMotivo = Int32.Parse(row["CodMotivo"].ToString()); objeto.Descricao = row["Descricao"].ToString(); objeto.CentroCustoDestino = gCCustos.Where(x => x.CodCCusto == row["CentroCustoDestino"].ToString()).SingleOrDefault(); lista.Add(objeto); } return lista; }
O gCCustoDao.Todos()
faz a mesma coisa. Abre uma conexao, faz um select, carrega e fecha.
06/03/2015
Soeuseijothaz
E qual a expressão sql que você usa em gCCustoDao.Todos() ?
Se possível post como esta modelado e como as tabelas se relacionam!
06/03/2015
Edson Hashimoto
Eu uso ASP.NET com ExtJS. ExtJS é um framework de layout. Tem um Controller q carrego todas as Store(arquivo q conecta com o ASP pra conectar com o BD).
Agora nao carrego na hora, faço isso qdo executo realmente o grid.
Obrigado mesmo =]
Clique aqui para fazer login e interagir na Comunidade :)