三層架構是哪三層
界面層(User Interface layer)
業務邏輯層(Business Logic Layer)
數據訪問層(Data access layer)
如何搭建三層架構
步驟1:
文件---新建---項目---Windows窗體應用程序
名稱:UIL
解決方案名稱:Demo3Tier
選中解決方案名稱:Demo3Tier
添加---新建項目---類庫
名稱:BLL
選中解決方案名稱:Demo3Tier
添加---新建項目---類庫
名稱:DAL
選中解決方案名稱:Demo3Tier
添加---新建項目---類庫
名稱:MODEL
完成之後如圖所示
步驟2:
UIL添加引用
BLL,MODEL
BLL添加引用
DAL,MODEL
DAL添加引用
MODEL
這裏只顯示了UIL層的引用
步驟3:
MODEL編寫F0092類文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MODEL
{
public class F0092
{
string ulul01;
string ulul02;
string ulul03;
string ulul04;
string ulul05;
string ulul06;
string ulul07;
string ulul08;
string ulul09;
string ulul10;
string ulul11;
string ulul12;
string ulul13;
string ulul14;
string ulul15;
string ulul16;
string ulul17;
string ulul18;
string ulul19;
string ulul20;
string ulul21;
string ulul22;
string ulul23;
string ulul24;
string ulul25;
public string ULUL01 { get { return ulul01; } set { ulul01 = value; } }
public string ULUL02 { get { return ulul02; } set { ulul02 = value; } }
public string ULUL03 { get { return ulul03; } set { ulul03 = value; } }
public string ULUL04 { get { return ulul04; } set { ulul04 = value; } }
public string ULUL05 { get { return ulul05; } set { ulul05 = value; } }
public string ULUL06 { get { return ulul06; } set { ulul06 = value; } }
public string ULUL07 { get { return ulul07; } set { ulul07 = value; } }
public string ULUL08 { get { return ulul08; } set { ulul08 = value; } }
public string ULUL09 { get { return ulul09; } set { ulul09 = value; } }
public string ULUL10 { get { return ulul10; } set { ulul10 = value; } }
public string ULUL11 { get { return ulul11; } set { ulul11 = value; } }
public string ULUL12 { get { return ulul12; } set { ulul12 = value; } }
public string ULUL13 { get { return ulul13; } set { ulul13 = value; } }
public string ULUL14 { get { return ulul14; } set { ulul14 = value; } }
public string ULUL15 { get { return ulul15; } set { ulul15 = value; } }
public string ULUL16 { get { return ulul16; } set { ulul16 = value; } }
public string ULUL17 { get { return ulul17; } set { ulul17 = value; } }
public string ULUL18 { get { return ulul18; } set { ulul18 = value; } }
public string ULUL19 { get { return ulul19; } set { ulul19 = value; } }
public string ULUL20 { get { return ulul20; } set { ulul20 = value; } }
public string ULUL21 { get { return ulul21; } set { ulul21 = value; } }
public string ULUL22 { get { return ulul22; } set { ulul22 = value; } }
public string ULUL23 { get { return ulul23; } set { ulul23 = value; } }
public string ULUL24 { get { return ulul24; } set { ulul24 = value; } }
public string ULUL25 { get { return ulul25; } set { ulul25 = value; } }
}
}
步驟4:
UIL編寫App.config配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--添加以下標籤connectionStrings-->
<connectionStrings>
<add name="MSSQLDB" connectionString="server=.;uid=sa;pwd=123456;database=LemonTea;"/>
</connectionStrings>
</configuration>
步驟5:
DAL編寫MssqlHelper類文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//使用以下命名空間。
using System.Data;
using System.Data.SqlClient;
//需要添加引用
using System.Configuration;
namespace DAL
{
class MssqlHelper
{
//獲取連接數據庫的對象
public static SqlConnection GetConn()
{
//獲取數據庫連接字符串
string strAccess = ConfigurationManager.ConnectionStrings["MSSQLDB"].ConnectionString;
//得到連接數據庫的對象
SqlConnection sqlConn = new SqlConnection(strAccess);
return sqlConn;
}
//查詢的公共方法
public static DataSet SearchMethod(string strSQL, SqlParameter[] sqlPar)
{
//得到連接數據庫的對象
SqlConnection sqlConn = GetConn();
//得到執行SQL語句的對象
SqlCommand sqlCmd = new SqlCommand(strSQL, sqlConn);
//把參數添加到SqlCommand中。
if (sqlPar != null)
{
sqlCmd.Parameters.AddRange(sqlPar);
}
//適配器去執行
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
//得到數據的倉庫
DataSet sqlDs = new DataSet();
//填充數據
sqlDa.Fill(sqlDs);
return sqlDs;
}
//更新的公共方法
public static bool ModifyMethod(string strSQL, SqlParameter[] sqlPar)
{
bool result = false;
//得到連接數據庫的對象
SqlConnection sqlConn = GetConn();
//得到執行SQL語句的對象
SqlCommand sqlCmd = new SqlCommand(strSQL, sqlConn);
//把參數添加到SqlCommand中。
if (sqlPar != null)
{
sqlCmd.Parameters.AddRange(sqlPar);
}
try
{
//打開數據庫連接
sqlConn.Open();
//執行SQL語句
int numExec = sqlCmd.ExecuteNonQuery();
if (numExec > 0)
{
result = true;
}
}
catch (Exception ex)
{
//拋出錯誤異常信息
throw ex;
}
finally
{
//關閉數據庫連接
sqlConn.Close();
}
return result;
}
}
}
DAL編寫F0092類文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//使用以下命名空間。
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
public class F0092
{
//查詢全部記錄
public static List<MODEL.F0092> SelectAllRecord()
{
List<MODEL.F0092> list = new List<MODEL.F0092>();
string strSQL = "select * from F0092";
DataSet sqlDs = MssqlHelper.SearchMethod(strSQL, null);
foreach (DataRow dr in sqlDs.Tables[0].Rows)
{
MODEL.F0092 f0092 = new MODEL.F0092();
f0092.ULUL01 = Convert.ToString(dr["ULUL01"]);
f0092.ULUL02 = Convert.ToString(dr["ULUL02"]);
f0092.ULUL03 = Convert.ToString(dr["ULUL03"]);
f0092.ULUL04 = Convert.ToString(dr["ULUL04"]);
f0092.ULUL05 = Convert.ToString(dr["ULUL05"]);
f0092.ULUL06 = Convert.ToString(dr["ULUL06"]);
f0092.ULUL07 = Convert.ToString(dr["ULUL07"]);
f0092.ULUL08 = Convert.ToString(dr["ULUL08"]);
f0092.ULUL09 = Convert.ToString(dr["ULUL09"]);
f0092.ULUL10 = Convert.ToString(dr["ULUL10"]);
f0092.ULUL11 = Convert.ToString(dr["ULUL11"]);
f0092.ULUL12 = Convert.ToString(dr["ULUL12"]);
f0092.ULUL13 = Convert.ToString(dr["ULUL13"]);
f0092.ULUL14 = Convert.ToString(dr["ULUL14"]);
f0092.ULUL15 = Convert.ToString(dr["ULUL15"]);
f0092.ULUL16 = Convert.ToString(dr["ULUL16"]);
f0092.ULUL17 = Convert.ToString(dr["ULUL17"]);
f0092.ULUL18 = Convert.ToString(dr["ULUL18"]);
f0092.ULUL19 = Convert.ToString(dr["ULUL19"]);
f0092.ULUL20 = Convert.ToString(dr["ULUL20"]);
f0092.ULUL21 = Convert.ToString(dr["ULUL21"]);
f0092.ULUL22 = Convert.ToString(dr["ULUL22"]);
f0092.ULUL23 = Convert.ToString(dr["ULUL23"]);
f0092.ULUL24 = Convert.ToString(dr["ULUL24"]);
f0092.ULUL25 = Convert.ToString(dr["ULUL25"]);
list.Add(f0092);
}
return list;
}
//查詢單條記錄
public static MODEL.F0092 SelectSingleRecord(string ulul01)
{
string strSQL = "select * from F0092 where ulul01 = @ulul01";
SqlParameter[] sqlPar = {
new SqlParameter("@ulul01",ulul01)
};
DataSet sqlDs = MssqlHelper.SearchMethod(strSQL, sqlPar);
MODEL.F0092 f0092 = new MODEL.F0092();
f0092.ULUL01 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL01"]);
f0092.ULUL02 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL02"]);
f0092.ULUL03 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL03"]);
f0092.ULUL04 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL04"]);
f0092.ULUL05 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL05"]);
f0092.ULUL06 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL06"]);
f0092.ULUL07 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL07"]);
f0092.ULUL08 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL08"]);
f0092.ULUL09 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL09"]);
f0092.ULUL10 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL10"]);
f0092.ULUL11 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL11"]);
f0092.ULUL12 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL12"]);
f0092.ULUL13 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL13"]);
f0092.ULUL14 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL14"]);
f0092.ULUL15 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL15"]);
f0092.ULUL16 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL16"]);
f0092.ULUL17 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL17"]);
f0092.ULUL18 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL18"]);
f0092.ULUL19 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL19"]);
f0092.ULUL20 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL20"]);
f0092.ULUL21 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL21"]);
f0092.ULUL22 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL22"]);
f0092.ULUL23 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL23"]);
f0092.ULUL24 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL24"]);
f0092.ULUL25 = Convert.ToString(sqlDs.Tables[0].Rows[0]["ULUL25"]);
return f0092;
}
//添加記錄
public static bool InsertRecord(MODEL.F0092 f0092)
{
string strSQL = "insert into F0092 values(@ulul01,@ulul02,@ulul03,@ulul04,@ulul05,@ulul06,@ulul07,@ulul08,@ulul09,@ulul10,@ulul11,@ulul12,@ulul13,@ulul14,@ulul15,@ulul16,@ulul17,@ulul18,@ulul19,@ulul20,@ulul21,@ulul22,@ulul23,@ulul24,@ulul25)";
SqlParameter[] sqlPar = {
new SqlParameter("@ulul01",f0092.ULUL01),
new SqlParameter("@ulul02",f0092.ULUL02),
new SqlParameter("@ulul03",f0092.ULUL03),
new SqlParameter("@ulul04",f0092.ULUL04),
new SqlParameter("@ulul05",f0092.ULUL05),
new SqlParameter("@ulul06",f0092.ULUL06),
new SqlParameter("@ulul07",f0092.ULUL07),
new SqlParameter("@ulul08",f0092.ULUL08),
new SqlParameter("@ulul09",f0092.ULUL09),
new SqlParameter("@ulul10",f0092.ULUL10),
new SqlParameter("@ulul11",f0092.ULUL11),
new SqlParameter("@ulul12",f0092.ULUL12),
new SqlParameter("@ulul13",f0092.ULUL13),
new SqlParameter("@ulul14",f0092.ULUL14),
new SqlParameter("@ulul15",f0092.ULUL15),
new SqlParameter("@ulul16",f0092.ULUL16),
new SqlParameter("@ulul17",f0092.ULUL17),
new SqlParameter("@ulul18",f0092.ULUL18),
new SqlParameter("@ulul19",f0092.ULUL19),
new SqlParameter("@ulul20",f0092.ULUL20),
new SqlParameter("@ulul21",f0092.ULUL21),
new SqlParameter("@ulul22",f0092.ULUL22),
new SqlParameter("@ulul23",f0092.ULUL23),
new SqlParameter("@ulul24",f0092.ULUL24),
new SqlParameter("@ulul25",f0092.ULUL25)
};
bool result = MssqlHelper.ModifyMethod(strSQL, sqlPar);
return result;
}
//刪除記錄
public static bool DeleteRecord(string ulul01)
{
string strSQL = "delete from F0092 where ulul01 = @ulul01";
SqlParameter[] sqlPar = {
new SqlParameter("@ulul01",ulul01)
};
bool result = MssqlHelper.ModifyMethod(strSQL, sqlPar);
return result;
}
//修改記錄
public static bool UpdateRecord(MODEL.F0092 f0092)
{
string strSQL = "update F0092 set ulul02=@ulul02,ulul03=@ulul03,ulul04=@ulul04,ulul05=@ulul05,ulul06=@ulul06,ulul07=@ulul07,ulul08=@ulul08,ulul09=@ulul09,ulul10=@ulul10,ulul11=@ulul11,ulul12=@ulul12,ulul13=@ulul13,ulul14=@ulul14,ulul15=@ulul15,ulul16=@ulul16,ulul17=@ulul17,ulul18=@ulul18,ulul19=@ulul19,ulul20=@ulul20,ulul21=@ulul21,ulul22=@ulul22,ulul23=@ulul23,ulul24=@ulul24,ulul25=@ulul25 where ulul01=@ulul01";
SqlParameter[] sqlPar = {
new SqlParameter("@ulul02",f0092.ULUL02),
new SqlParameter("@ulul03",f0092.ULUL03),
new SqlParameter("@ulul04",f0092.ULUL04),
new SqlParameter("@ulul05",f0092.ULUL05),
new SqlParameter("@ulul06",f0092.ULUL06),
new SqlParameter("@ulul07",f0092.ULUL07),
new SqlParameter("@ulul08",f0092.ULUL08),
new SqlParameter("@ulul09",f0092.ULUL09),
new SqlParameter("@ulul10",f0092.ULUL10),
new SqlParameter("@ulul11",f0092.ULUL11),
new SqlParameter("@ulul12",f0092.ULUL12),
new SqlParameter("@ulul13",f0092.ULUL13),
new SqlParameter("@ulul14",f0092.ULUL14),
new SqlParameter("@ulul15",f0092.ULUL15),
new SqlParameter("@ulul16",f0092.ULUL16),
new SqlParameter("@ulul17",f0092.ULUL17),
new SqlParameter("@ulul18",f0092.ULUL18),
new SqlParameter("@ulul19",f0092.ULUL19),
new SqlParameter("@ulul20",f0092.ULUL20),
new SqlParameter("@ulul21",f0092.ULUL21),
new SqlParameter("@ulul22",f0092.ULUL22),
new SqlParameter("@ulul23",f0092.ULUL23),
new SqlParameter("@ulul24",f0092.ULUL24),
new SqlParameter("@ulul25",f0092.ULUL25),
new SqlParameter("@ulul01",f0092.ULUL01)
};
bool result = MssqlHelper.ModifyMethod(strSQL, sqlPar);
return result;
}
}
}
步驟6:
BLL編寫F0092類文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//使用以下命名空間。
using System.Data;
using System.Data.SqlClient;
namespace BLL
{
public class F0092
{
//查詢全部記錄
public static List<MODEL.F0092> SelectAllRecord()
{
return DAL.F0092.SelectAllRecord();
}
//查詢單條記錄
public static MODEL.F0092 SelectSingleRecord(string ulul01)
{
return DAL.F0092.SelectSingleRecord(ulul01);
}
//添加記錄
public static bool InsertRecord(MODEL.F0092 f0092)
{
return DAL.F0092.InsertRecord(f0092);
}
//刪除記錄
public static bool DeleteRecord(string ulul01)
{
return DAL.F0092.DeleteRecord(ulul01);
}
//修改記錄
public static bool UpdateRecord(MODEL.F0092 f0092)
{
return DAL.F0092.UpdateRecord(f0092);
}
}
}
步驟7:
UIL編寫代碼。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace UIL
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnSearch_Click(object sender, EventArgs e)
{
dgvDisplay.DataSource = BLL.F0092.SelectAllRecord();
}
}
}
完成步驟4~步驟7後如圖所示
完成