本文文字方面引用 微冷的風丶(博客地址:https://www.cnblogs.com/smbk/)
代码部分是本人亲自写的一个sqlite的练手(当时写的太烂了,现在回顾重构一下)
三层架构分为:表现层(UI(User Interface))、业务逻辑层(BLL(Business Logic Layer))、数据访问层(DAL(Data Access Layer))再加上实体类库(Model)
1、实体类库(Model),主要存放数据库中的表字段。
操作:
(1)先建立实体类库Model,打开项目,在解决方案中右键——>添加——>新建项目——>选中类库——>改名Model——>确定
(2)选中Model类库——>建立实体类命名为:UserInfo
2、数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作
操作:
(1)先建立数据访问层类库DAL,打开项目,在解决方案中右键——>添加——>新建项目——>选中类库——>改名DAL——>确定
(2)在DAL中添加对Model的引用,点击DAL前▲——>右键点击引用——>添加引用——>项目——>选中Model——>确定
(3)在DAL中添加对system.configuration的引用,点击DAL前▲——>右键点击引用——>添加引用——>程序集——>选中System.configuration——>确定
(4)建立数据访问类,右键DAL——>建立类——>建立实体类命名为:UserDB
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SQLite; /// <summary> /// 数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作 /// </summary> namespace DAL {/// <summary> /// 数据访问类 /// </summary> class UserDB { void CreatDB() { string path = @"D:\login\login.sqlite"; SQLiteConnection cnn = new SQLiteConnection("data source=" + path); //相当于cn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");前提是先建立MyDatabase.sqlite //相当于cn = new SQLiteConnection(@"Data Source=E:\test\123.sqlite"); cnn.Open(); cnn.Close(); } /// <summary> /// 删除数据库(其实删除这个文件) /// </summary> void DeleteDB() { string path = @"D:\login\login.sqlite"; if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } } /// <summary> /// 添加表 /// </summary> public void CreateTable() { using (SQLiteConnection cnn = new SQLiteConnection(@"Data Source=E:\login\login.sqlite"))//创建链接,链接到该数据库 { if (cnn.State != System.Data.ConnectionState.Open) //判断数据库是否是打开,打开状态则不进行操作并关闭。 { cnn.Open(); //打开数据库 SQLiteCommand cmd = new SQLiteCommand(cnn); //创建对该数据库操作的命令 cmd.CommandText = "CREATE TABLE UserList(Account varchar(20),Password varchar(20))"; //输入命令内容 cmd.ExecuteNonQuery(); //执行并且返回 } cnn.Close(); } } /// <summary> /// 填充表_注册新账号 /// </summary> public int FillTable(string tbNewAccount, string tbNewPassword, string tbNewPasswordConfirm) { using (SQLiteConnection cnn = new SQLiteConnection(@"Data Source=E:\login\login.sqlite")) //创建链接,链接到该数据库 { if (cnn.State != System.Data.ConnectionState.Open) //判断数据库是否是打开,打开状态则不进行操作并关闭。 { cnn.Open(); //打开数据库 using (SQLiteCommand cmd = new SQLiteCommand(cnn)) //创建对该数据库操作的命令 { cmd.CommandText = "INSERT INTO UserList(Account, Password) VALUES('" + tbNewAccount + "', '" + tbNewPassword + "')"; //输入命令内容 if (tbNewPasswordConfirm == tbNewPassword)//微软牛逼! { cmd.ExecuteNonQuery(); return 1; } else return 0; } } cnn.Close(); return -1; } } /// <summary> /// 改表名 /// </summary> public void ChangeNmae() { using (SQLiteConnection cnn = new SQLiteConnection(@"Data Source=E:\login\login.sqlite")) { if (cnn.State != System.Data.ConnectionState.Open) { cnn.Open(); using (SQLiteCommand cmd = new SQLiteCommand(cnn)) { cmd.CommandText = "ALTER TABLE UserList RENAME TO Scores"; cmd.ExecuteNonQuery(); } } cnn.Close(); } } /// <summary> /// 删除表 /// </summary> void DropTable() { using (SQLiteConnection cnn = new SQLiteConnection(@"Data Source=E:\login\login.sqlite")) { if (cnn.State != System.Data.ConnectionState.Open) { cnn.Open(); using (SQLiteCommand cmd = new SQLiteCommand(cnn)) { cmd.CommandText = "DROP TABLE IF EXISTS UserList"; //DROP TABLE IF EXISTS database_name.table_name( IF EXISTS database_name.可省略) cmd.ExecuteNonQuery(); } } cnn.Close(); } } /// <summary> /// 修改表_忘记密码 /// </summary> void UpdataTable() { using (SQLiteConnection cnn = new SQLiteConnection(@"Data Source=E:\login\login.sqlite")) { if (cnn.State != System.Data.ConnectionState.Open) { cnn.Open(); using (SQLiteCommand cmd = new SQLiteCommand(cnn)) { cmd.CommandText = "UPDATE UserList SET Password = tbNewPassword WHERE Account = tbAccountNoPassword"; cmd.ExecuteNonQuery(); } } cnn.Close(); } } /// <summary> /// 表内查找_验证账号密码 /// </summary> public int SelectTable(string tbAccount, string tbPassword) { using (SQLiteConnection cnn = new SQLiteConnection(@"Data Source=E:\login\login.sqlite")) { if (cnn.State != System.Data.ConnectionState.Open) { cnn.Open(); using (SQLiteCommand cmd = new SQLiteCommand(cnn)) { cmd.CommandText = "SELECT * FROM UserList WHERE Account='" + tbAccount + "' AND Password='" + tbPassword + "'"; var flag = cmd.ExecuteScalar(); if (flag == null) { return 0;//表示未搜索到 } else { return 1;//表示搜索到 } } } cnn.Close(); return -1;//-1表示没有启动搜索 } } //static void Main(string[] args) //{ //DataBaseTest p = new DataBaseTest(); //p.CreateDB(); //创建库 //p.DeleteDB(); //删除数据库 //p.CreateTable(); //创建表 //p.ChangeNmae(); //改表名 //p.FillTable(); //填充表——增 //p.DropTable(); //删除表——删 //p.UpdataTable(); //修改表——改 //p.SelectTable(); //表内查找—查 //} } }