使用VB.Net、C#.Net和SQL Server。
Windows应用程序
我想分离三层架构(表示层,数据访问层,业务逻辑层)的代码。
代码。
Form_Load
Dim cmd As New SqlCommand
Dim ada As New SqlDataAdapter
Dim ds As New DataSet
Con = New SqlConnection("Data Source='" & servername.Text & "';Initial Catalog='" & databasename.Text & "';Integrated Security=true")
Con.Open()
cmd = New SqlCommand("Select * from tb1", Con)
ada = New SqlDataAdapter(cmd)
ada.Fill(ds, "tb1")
datagrid2.DataSource = ds.Tables("tb1")上面的代码是工作的,但我想做一个相同的过程,使用3层架构。
如何根据三层架构分离我的代码。
需要VB.Net代码帮助
发布于 2010-02-24 17:57:51
您可以为除UI层之外的每一层创建一个类库项目。然后,您必须将每个流程分解为这3层。例如,所有的数据访问都放在数据访问层,所有的逻辑都放在逻辑层。在UI中,您不能直接使用DAL。您应该只调用在BLL中定义的方法。
注意:通过添加每层的dll作为对UI项目的引用,将这些层添加到UI中。
DAL
public DataSet GetData(string serverName,string dataBaseName)
{
SqlCommand cmd;
SqlDataAdapter ada;
DataSet ds = new DataSet();
SqlConnection Con;
Con = New SqlConnection("Data Source='" & serverName & "';Initial Catalog='" & dataBaseName & "';Integrated Security=true");
Con.Open();
cmd = New SqlCommand("Select * from tb1", Con);
ada = New SqlDataAdapter(cmd);
ada.Fill(ds, "tb1");
return ds;
}BLL
public DataSet GetData(string serverName,string dataBaseName)
{
DataSet ds = new DataSet();
ds = DoAction(new DAL().GetData(serverName, dataBaseName)); //do something on data
return ds;
}UI
datagrid2.DataSource = new BLL().GetData(servername.Text,databasename.Text);
datagrid2.DataMember = "tb1";
datagrid2.DataBind();发布于 2010-02-24 17:56:39
下面的代码应该在表示层上
Datagrid2.DataSource = ds.Tables("tb1")以下图层应位于您的数据访问层上
Dim cmd As New SqlCommand
Dim ada As New SqlDataAdapter
Dim ds As New DataSet
Con = New SqlConnection("Data Source='" & servername.Text & "';Initial Catalog='" & databasename.Text & "';Integrated Security=true")
Con.Open() 下面的代码应该在业务逻辑层上
cmd = New SqlCommand("Select * from tb1", Con)
ada = New SqlDataAdapter(cmd)
ada.Fill(ds, "tb1")但我强烈建议不要使用类似的东西,使用诸如NHibernate或EntityFramework或至少来自LinkToSql的对象关系映射
https://stackoverflow.com/questions/2324860
复制相似问题