CS0103当前上下文中不存在该名称

时间:2017-07-24 04:33:08

标签: c# visual-studio-2017

这是我的DBHelper类

namespace Oficina.Dados
{
    public class DbHelper
    {
        public SqlCommand ExecutarProcedure(string procedure)
        {
            //Definir o comando
            var cmd = new SqlCommand();
            try
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = procedure;
                cmd.Connection = new SqlConnection(Properties.Settings.Default.cnOficina);
                cmd.Connection.Open();
                return cmd;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public SqlCommand ExecutarProcedure(string procedure, List<SqlParameter> parametros)
        {
            var cmd = ExecutarProcedure(procedure);
            try
            {
                cmd.Parameters.AddRange(parametros.ToArray());
                return cmd;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public class ClienteDados : DbHelper
        {

        }

    }
}

而且,当我尝试使用&#34; Executar Procedure&#34;在这堂课中,我得到错误CS0103

namespace Oficina.Dados
{
    public class ClienteDados
    {
        public List<ClienteModelo> ListarClientes()
        {
            try
            {
                //Definir o leitor
                SqlDataReader leitor = ExecutarProcedure("pCliente_SEL_Todos").ExecuteReader();

                //Definir uma lista do tipo ClienteModelo
                List<ClienteModelo> lista = new
                List<ClienteModelo>();

                //Adicionar um cliente em branco na lista
                lista.Add(new ClienteModelo()
                {
                    Codigo = 0,
                    Nome = "",
                    Email = "",
                    Nascimento = DateTime.Now
                });

                //Verificar se o leitor está lendo registros
                while (leitor.Read())
                {
                    //Adicionar os clientes à lista
                    lista.Add(new ClienteModelo()
                    {
                        Codigo = (int)leitor["Codigo"],
                        Nome = leitor["Nome"].ToString(),
                        Email = leitor["Email"].ToString(),
                        Nascimento = (DateTime)leitor["Nascimento"]
                    });
                }

                //Fechar o leitor
                leitor.Close();

                //Retornar a lista
                return lista;
            }

            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

    }
}

1 个答案:

答案 0 :(得分:0)

您定义了两个ClienteDados类,其中一个是DbHelper中的内部类,并从中继承,另一个是独立的,不继承自DbHelper。这些方法也不是静态的,因此第二个ClienteDados没有理由知道它们。

让它继承DbHelper并删除ClienteDados中的内部DbHelper

namespace Oficina.Dados
{
    public class ClienteDados : DbHelper
    {
        //...
    }
}

namespace Oficina.Dados
{
    public class DbHelper
    {
        public SqlCommand ExecutarProcedure(string procedure) { //... }

        public SqlCommand ExecutarProcedure(string procedure, List<SqlParameter> parametros) { //... }
    }
}