2010-07-20 3 views
0

Я сделал этот код в своем слое презентации, но я не знаю, как это сделать на 3 уровне. , Пожалуйста, помогите, я столкнулся с этой проблемой. form1_Load() { cboStatus(); GetlistView(); }Как связать просмотр списка и списка сокетов в n-уровне?

область «FILL комбо»

public void cboStatus() 
    { 

     try 
     { 
      SqlConnection conn = new SqlConnection(connStr); 
      SqlCommand sqlcom = new SqlCommand("sp_loadStatus",conn); 
      sqlcom.CommandType = CommandType.StoredProcedure; 
      SqlDataReader dr = null; 
      conn.Open(); 
      dr = sqlcom.ExecuteReader(); 
      cmbStatus.Items.Clear(); 
      while (dr.Read()) 
      { 
       cmbStatus.Items.Add((dr["StatusDescription"])); 
      } 

      if (conn.State == ConnectionState.Open) conn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error Occurred:" + ex); 
     } 
     finally 
     { 

     } 
    } 

    #endregion 

    #region "fill listview" 
    public void GetlistView() 
    { 

     int i = 0; 

     SqlConnection sqlcon = new SqlConnection(connStr); 
     lstBF.Items.Clear(); 
     SqlCommand sqlcom = new SqlCommand("sp_LoadNew", sqlcon); 
     sqlcom.CommandType = CommandType.StoredProcedure; 
     SqlDataReader dr; 
     lstBF.Items.Clear(); 
     sqlcon.Open(); 
     dr = sqlcom.ExecuteReader(); 

     while (dr.Read()) 
     { 

      lstBF.Items.Add(dr["SerialNumber"].ToString()); 
      lstBF.Items[i].SubItems.Add(dr["PartNumber"].ToString()); 
      lstBF.Items[i].SubItems.Add(dr["StatusDescription"].ToString()); 
      lstBF.Items[i].SubItems.Add(dr["CustomerName"].ToString()); 
      lstBF.Items[i].SubItems.Add(dr["DateCreated"].ToString()); 
      lstBF.Items[i].SubItems.Add(dr["CreatedBy"].ToString()); 
      lstBF.Items[i].SubItems.Add(dr["ModifiedBy"].ToString()); 


      i = i + 1; 
     } 

     if (sqlcon.State == ConnectionState.Open) sqlcon.Close(); 
    } 



    #endregion 

ответ

1

Есть, вероятно, несколько вещей, которые вы можете сделать, но я думаю, что самым основным было бы создание бизнес-объектов (класс C#), которые представляют статус и все, что вы показываете в своем ListView (вероятно, продукт какого-то рода) ,

Ваш уровень данных должен иметь код доступа к данным (SqlConnection и т. Д.), Который создает коллекции статусов и продуктов.

Ваш бизнес-уровень позаботится о любой бизнес-логике (которой у вас здесь мало, что хорошо).

Ваш уровень представления привяжет элементы управления пользовательского интерфейса к коллекциям, возвращаемым с уровня данных (через уровень бизнеса).

Действительно, ваши бизнес-объекты являются объектами бизнес-уровня.

Оттуда вы можете расширить, чтобы сделать классы доступа к данным, соответствующие вашим бизнес-объектам и т. Д.

Вот хорошая техническая статья, чтобы вы начали: http://msdn.microsoft.com/en-us/library/ms973279.aspx

1

Для начала, вы должны поместить этот код в отдельный файл или проект и назовите, что DataLayer. Вместо привязки к вашему списку, вы вернете считыватель данных. Затем вы создадите бизнес-уровень с несколькими бизнес-классами. В этом случае вы можете начать с «Части» или «Заказ». Это будет содержать свойства из вашей таблицы данных в качестве свойств класса. Затем создайте контроллер, который выведет список ваших частей или ордеров и передаст их обратно на уровень презентации.

Этот способ является одним из примеров и позволяет поддерживать разделение вашей презентации и данных.

+0

Я ча Теперь Bind мой Combo ящик с использованием яруса .... :) Последняя проблема является ListView/ListBox. – Crimsonland