在一个win窗体应用程序中,界面中有一个网格视图需要显示客户的分支机构详情。大约有50个分支机构。所以
问题是
DataService
类中的GetBranchDetails()
方法返回一个DataSet
对象,而Presenter
类将该DataSet
传递给UI的BindData()
方法,在该方法中,网格视图的datasource
属性被设置为该DataSet
对象,如代码所示。问题是
DataService
没有返回模型,而是返回DataSet
。能否告诉我如何在此处使用BranchOffice
模型,而不是使用DataSet
?因此Model
应从DataService
返回,然后presenter
将传递该Model
到UI,在那里Model
将作为网格视图的datasource
设置。请注意,总会有多个分支机构!
DataService
类:
public DataTable GetBranchDetails()
{
string selectStatement = "SELECT ID, branch_name + ', ' + branch_add AS Branch, area, sm, atten_status FROM Branch WHERE Status='Active'";
using (SqlConnection sqlConnection = new SqlConnection(db.GetConnectionString))
using (SqlCommand sqlCommand = new SqlCommand(selectStatement, sqlConnection))
using (SqlDataAdapter da = new SqlDataAdapter(sqlCommand))
using (DataSet ds = new DataSet())
using (DataTable dt = new DataTable())
{
ds.Tables.Add(dt);
sqlConnection.Open();
da.Fill(dt);
return dt;
}
}
Presenter Class
private void _View_ShowBranches(object sender, EventArgs e)
{
ShowBranches();
}
private void ShowBranches()
{
var dt = DataService.GetBranchDetails();
this._View.BindData(dt);
}
视图 / 用户界面
public partial class frmAttendancePoints : Form, IView
{
public frmAttendancePoints()
{
InitializeComponents();
}
public void BindData(DataSet dt)
{
dgAttendancePoints.DataSource = dt;
}
}