下面我会为你详细讲解使用C#三层架构开发Winform的完整攻略。
什么是三层架构
三层架构是一种常见的软件架构模式,将软件应用划分为三个不同的部分:表示层、业务逻辑层和数据访问层。这三层分别负责不同的功能,并通过一定的规则进行交互。
- 表示层:用户与应用程序进行交互的接口。在Windows应用程序中,表示层一般指Winform或WPF界面。
- 业务逻辑层:应用程序的核心部分,处理各种业务逻辑,包括数据验证、计算、状态管理等。
- 数据访问层:负责与数据库进行交互,将业务逻辑层的请求映射为实际的数据库操作。
使用三层架构开发Winform应用的步骤
第一步:创建项目
首先,我们需要创建一个新的C# Winform项目。在Visual Studio中,使用File -> New -> Project,选择Windows Forms App(.NET Framework)模板,填写项目名称和存储位置,点击Create创建项目。
第二步:创建三个文件夹
创建三个文件夹,分别用来存放表示层、业务逻辑层和数据访问层的代码。在Visual Studio的Solution Explorer中,右键单击项目名称,选择Add -> New Folder,分别创建Winform、BLL和DAL三个文件夹。
第三步:创建实体类
实体类用来定义数据模型,对应数据库中的表结构。在BLL文件夹中,创建一个名为Model的类库项目,用来存放实体类。在该项目中,每个实体类均需创建一个与表结构对接的类。
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public string Password { get; set; }
public int Age { get; set; }
}
第四步:创建数据访问层
数据访问层用来连接数据库,并对数据库进行操作。在DAL文件夹中,创建一个名为DAL的类库项目,在该项目中创建访问数据库的方法。
public class UserDAL
{
private static string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
public static int AddUser(User user)
{
int result = 0;
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = string.Format("insert into [User](Name, Password, Age) values('{0}', '{1}', {2})", user.Name, user.Password, user.Age);
SqlCommand cmd = new SqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
}
catch (Exception)
{
throw;
}
return result;
}
public static List<User> GetAllUsers()
{
List<User> users = new List<User>();
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = "select * from [User]";
SqlCommand cmd = new SqlCommand(sql, conn);
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
User user = new User();
user.ID = reader.GetInt32(0);
user.Name = reader.GetString(1);
user.Password = reader.GetString(2);
user.Age = reader.GetInt32(3);
users.Add(user);
}
}
}
}
catch (Exception)
{
throw;
}
return users;
}
}
第五步:创建业务逻辑层
业务逻辑层是应用程序的核心部分,负责对数据进行处理,并处理各种业务逻辑。在BLL文件夹中,创建一个名为BLL的类库项目,在该项目中创建对外暴露的业务逻辑方法。
public class UserBLL
{
public static int AddUser(User user)
{
return UserDAL.AddUser(user);
}
public static List<User> GetAllUsers()
{
return UserDAL.GetAllUsers();
}
}
第六步:创建表示层
表示层在Winform应用程序中指的是自定义的所有窗体和控件。在Winform文件夹中,创建一个名为MainForm的窗体,使用DataGridView控件来显示数据库中的数据。同时在该窗体中创建AddUser按钮,用来添加新用户。
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
LoadUserList();
}
private void LoadUserList()
{
List<User> users = UserBLL.GetAllUsers();
dgvUserList.DataSource = users;
}
private void btnAddUser_Click(object sender, EventArgs e)
{
UserForm userForm = new UserForm();
if (userForm.ShowDialog() == DialogResult.OK)
{
UserBLL.AddUser(userForm.User);
LoadUserList();
}
}
}
示例说明一
如上所示,我们在MainForm窗体中创建了一个btnAddUser按钮,在点击该按钮后会弹出UserForm窗体,用来让用户输入新用户信息。在UserForm窗体中,我们创建了一个User属性和确定按钮,点击确定按钮后会将输入的信息保存到User属性中并关闭窗体。
public partial class UserForm : Form
{
public User User { get; set; }
public UserForm()
{
InitializeComponent();
User = new User();
}
private void btnSave_Click(object sender, EventArgs e)
{
User.Name = txtName.Text.Trim();
User.Password = txtPassword.Text.Trim();
User.Age = int.Parse(txtAge.Text.Trim());
DialogResult = DialogResult.OK;
}
}
示例说明二
另外一个示例在DAL层,我们在操作数据库时使用了ConfigurationManager类读取配置文件中的数据库连接字符串,而将真实的数据库连接字符串存放在配置文件中可以方便地修改和维护。
private static string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
总结
以上就是使用C#三层架构开发Winform应用的详细攻略。这种架构模式能够优化代码结构,实现业务逻辑与数据访问分离,增加代码的可读性和可维护性。相信通过实现以上步骤,你也可以很好地实现一个Winform应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#使用三层架构开发Winform的详细案例 - Python技术站