如何使用3tier架构填充组合框?我使用了这段代码;
private void BindDepName()
{
MySqlConnection con = new MySqlConnection("server=localhost;User Id=root;password=sa;database=employeedetails");
con.Open();
string MySql = "SELECT * FROM tbldept";
MySqlDataAdapter da = new MySqlDataAdapter(MySql, con);
DataSet ds = new DataSet();
da.Fill(ds);
DepName.DataSource = ds.Tables[0];
DepName.ValueMember = "Dept_id";
DepName.DisplayMember = "Dept_name";
string i = ds.Tables[0].Rows[0].ItemArray[1].ToString();
DepName.Text = "select dept";
con.Close();
}
答案 0 :(得分:1)
在3tier世界中,你将在BusinessLogic
类库中有一个类,它将Entities
的某种可枚举(IEnumerable,List,Collection,array ...)返回给用户界面;作为良好实践,UI不应直接与DataTable和DataSet一起使用。
返回以填充UI控件(在您的情况下为组合框)的实际对象类型取决于您的设计和首选项,如果您使用实体框架,则可以在EF设计器/模型中定义和建模实体。 / p>
架构的下半部分是Dala Access Layer
,想象它是一个类库唯一一个允许并能够建立与数据库的连接,所以mySql连接管理和实际查询执行应该被隔离,而不是从DAL向上暴露。
UI调用BL调用DAL。
DAL连接到数据库,查询并将实体返回给BL。
BL将实体(集合类型)返回到用于绑定的UI。
尝试并保持简单,只为启动,您可以跳过实体建模并返回数据表,以便您可以测试逻辑。 :)