2015-09-05 3 views
-4

Этот проект должен иметь контактный класс и адрес класса и я извлечения информации из файлов данныхПочему я получаю ошибку Ошибка Непоследовательная доступность: тип возврата?

namespace Week1.DataAccess 
{ 
    public class AddressBookRepo 
    { 
     private string ConnectionString 
     { 
      get 
      { 
       return ConfigurationManager 
        .ConnectionStrings["AddressbookConnectionString"] 
        .ConnectionString; 
      } 
     } 

     public List<Contact> GetAllContacts() 
     { 
      var contactList = new List<Contact>(); 
      using (var conn = new SqlConnection(ConnectionString)) 
      { 
       using (var command = new SqlCommand()) 
       { 
        command.Connection = conn; 
        command.CommandText = "SELECT * FROM CONTACT"; 
        conn.Open(); 
        using (var reader = command.ExecuteReader()) 
        { 
         while (reader.Read()) 
         { 
          var contact = GetContactFromDataReader(reader); 
          contactList.Add(contact); 
         } 
        } 
       } 

      } 

      return contactList; 
     } 

     public Contact GetContactById(int id) 
     { 
      Contact contact = null; 

      using (var conn = new SqlConnection(ConnectionString)) 
      { 
       using (var command = new SqlCommand()) 
       { 
        command.Connection = conn; 
        conn.Open(); 
        command.CommandText = 
           @"SELECT * 
           FROM CONTACT 
           WHERE ContactID = @ContactId"; 
        command.Parameters.AddWithValue("ContactID", id); 

        using (var reader = command.ExecuteReader()) 
        { 
         reader.Read(); 
         contact = GetContactFromDataReader(reader); 
        } 
       } 
      } 
      return contact; 
     } 

     // 2.) create a GetAllAddresses method 
     public List<Address> GetAllAddresses() //i am getting error here 
     { 
      var addressList = new List<Address>(); 
      using (var conn = new SqlConnection(ConnectionString)) 
      { 
       using (var command = new SqlCommand()) 
       { 
        command.Connection = conn; 
        command.CommandText = "SELECT * FROM ADDRESS"; 
        conn.Open(); 
        using (var reader = command.ExecuteReader()) 
        { 
         while (reader.Read()) 
         { 
          var address = GetAddressFromDataReader(reader); 
          addressList.Add(address); 
         } 
        } 
       } 

      } 

      return addressList; 
     } 

     // 3.) create a GetAddressById method 
     public Address GetAddressById(int id)// I am getting error here 
     { 
      Address address = null; 

      using (var conn = new SqlConnection(ConnectionString)) 
      { 
       using (var command = new SqlCommand()) 
       { 
        command.Connection = conn; 
        conn.Open(); 
        command.CommandText = 
           @"SELECT * 
           FROM ADDRESS 
           WHERE ADDRESSID = @AddressId"; 
        command.Parameters.AddWithValue("addressID", id); 

        using (var reader = command.ExecuteReader()) 
        { 
         reader.Read(); 
         address = GetAddressFromDataReader(reader); 
        } 
       } 
      } 
      return address; 
     } 


     // 4.) create a method to GetAddressesByState (extra credit) 

     private static Contact GetContactFromDataReader(SqlDataReader reader) 
     { 
      var contact = new Contact 
      { 
       ContactId = Convert.ToInt32(reader["ContactID"]), 
       FirstName = Convert.ToString(reader["FirstName"]).Trim(), 
       LastName = Convert.ToString(reader["LastName"]).Trim(), 
       Title = reader["Title"].ToString().Trim(), 
       AddDate = (DateTime)reader["AddDate"], 
       ModifiedDate = (DateTime)reader["ModifiedDate"] 
      }; 
      return contact; 
     } 

     private static Address GetAddressFromDataReader(SqlDataReader reader) 
     { 
      var address = new Address 
      { 
       AddressId = Convert.ToInt32(reader["addressID"]), 
       Street1 = Convert.ToString(reader["Street1"]), 
       Street2 = Convert.ToString(reader["Street2"]), 
       City = Convert.ToString(reader["City"]), 
       StateProvince = Convert.ToString(reader["StateProvince"]), 
       CountryRegion = Convert.ToString(reader["CountryRegion"]), 
       PostalCode = Convert.ToString(reader["PostalCode"]), 
       AddressType = Convert.ToString(reader["AddressType"]), 
       ContactId = Convert.ToInt32(reader["ContactID"]), 
       ModifiedDate = (DateTime)reader["ModifiedDate"] 
      }; 
      return address; 
     } 
    } 
} 
+5

Вы отправили более 150 строк кода, не сказав, где ошибка, или что вы пытались сделать, чтобы исправить это. Прежде чем задавать вопрос, вы должны уменьшить его до наименьшего примера, который может показать проблему, а затем потратить время, объясняя, что именно вы наблюдали. Прочтите http://tinyurl.com/stack-hints для получения более подробных предложений относительно того, как задать хороший вопрос. –

+0

(Это не помогает вам не показывать объявления для «Контакты» или «Адрес» ...) –

+0

@JonSkeet есть два комментария, указывающие на строки ошибок. Вероятно, класс Address не является общедоступным. – Steve

ответ

1

Ваши классы (вероятно Адрес объявления/или контакт), вероятно, не публичный, чтобы соответствовать acessibility из методы, которые они используются в

Смежные вопросы