SqlDataReader não retorna dados, sendo que os dados estão na tabela

2 respostas
csharpmvc
D

Estou apanhando com esse código em meu projeto MVC. Para realizar o teste se não é algum componente que estaria causando o problema, criei um projeto default no VS, do tipo MVC. E direto no controller da home, para fins de teste, criei o código abaixo:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            using (SqlConnection conecxao = new SqlConnection("Data Source=PC;Initial Catalog=DBTESTE;Integrated Security=True"))
            {
                conecxao.Open();
                SqlCommand comando = conecxao.CreateCommand();
                comando.CommandText = @"SELECT  * FROM SFT010 where R_E_C_N_O_=1312742";
                SqlDataReader leitor = comando.ExecuteReader();
                leitor.Read();

                if (leitor.HasRows)
                {
                    //faça alguma coisa aqui....nem que seja besta.
                }
                

            }


            return View();
        }
        
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}

Por mais que eu modifique o código, o leitor retorna sempre vazio: "A enumeração não gerou resultados"
Não sei se é alguma incompatibilidade do SQL que estou usando (SQL Server standard 2016), se é um problema com o Visual Studio 2017 Community.

2 Respostas

P

Boa tarde,

Estou com mesmo problema. Por acaso você conseguiu uma solução?

D

Não consegui… por fim abandonei essa ideia e estou usando o entity, e, com ele fazendo uma consulta fora dos moldes do Linq, usando SqlQuery. fica mais ou menos assim:

GenericAudit registro = contexto
                                .SuaEntidade //Sua entidade mapeada por DBSet
                                .SqlQuery(query)
                                .SingleOrDefault();
Criado 26 de junho de 2018
Ultima resposta 21 de set. de 2018
Respostas 2
Participantes 2