2013-06-17 4 views
0

Скажем, у меня есть очень простое приложение .NET только с помощью выпадающего списка, который связан с таблицей базы данных, какГде разместить методы DataBinding управления

public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     LoadDdlDropColor(); 
    } 
    private void LoadDdlDropColor() 
    { 
     string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      using (SqlCommand cmd = new SqlCommand("select color from Colors", con)) 
      { 
       con.Open(); 
       DropDownList1.DataSource = cmd.ExecuteReader(); 
       DropDownList1.DataTextField = "Color"; 
       DropDownList1.DataValueField = "color"; 
       DropDownList1.DataBind(); 
       DropDownList1.Items.Insert(0, new ListItem("select color", "-1")); 
      } 
     } 
    } 
} 

С точки зрения расширяемости и лучшей практике, это ОК чтобы доступ к данным выполнялся за пределами класса DataAccess? Или было бы более профессиональным передавать несколько параметров, т. Е. Элемент управления, SqlCommand и, если необходимо, SqlParameters в качестве параметров для запроса, вызванного в событии загрузки страницы?

+0

«Все в порядке?» является субъективным вопросом. В контексте «очень простого» приложения .NET, то уверен, почему бы и нет. Разумеется, в объем большого приложения нет. –

+0

Вы можете сделать 'DropDownList1.Items.Insert' после того, как вы выполнили привязку данных? Я не уверен в asp.net, но в WinForms я не думаю, что это возможно. – dotNET

+0

@dotNET Вы действительно можете. – wootscootinboogie

ответ

2

Для простого и умеренно сложного приложения я бы предпочел использовать строго типизированные DataSets (или EF, если на то пошло), а также поддержку привязки времени разработки. Это быстро, легко и работает. Сделать изменения также проще.

+0

Я хотел узнать как можно больше о материалах обложки, но это похоже на то, что Entity Framework работает, и это поможет мне ускорить мое развитие. – wootscootinboogie

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