ASP.NET - Codigo Fonte (passo-a-passo[DEBUG]) sem sequencia logica

06/03/2015

0

Bom dia.
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

Edson Hashimoto

Responder

Posts

06/03/2015

Soeuseijothaz

Posta o código do CarregaObjeto(dr)!
Responder

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.
Responder

06/03/2015

Soeuseijothaz

Poderia esclarece quais os campos de "Select * from BLABLABLA"?

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!
Responder

06/03/2015

Edson Hashimoto

Mto obrigado pela atenção. Fazia uns 4 meses q tava pendente esse problema.
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 =]
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar