C#学习笔记(三)——SQLITE数据库
在C#中使用Sqlite的方法: 【安装Sqlite】 第一步: 引用三个文件 sqlite-netFx40-binary-bundle-x64-2010-1.0.111.0.zip (或者sqlite-netFx40-binary-bundle-Win32-2010-1.0.94.0.zip) //注意要用带bundle的包,要不然会提示缺少SQLite.Interop.dll,要下载跟自身电脑.NET版本相匹配的包, 以上包都可以在官网(http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki)下载 1.System.Data.SQLite.dll 2.System.Data.SQLite.EF6.dll 3.System.Data.SQLite.Linq.dll //代码引用的DLL版本需跟目标平台版本保持一致(配置中目标平台要跟运行程序的平台保持一致)同时要注意目标框架的,NET版本。 第二步: 需要将包里的System.Data.SQLite.dll与生成程序放在同一个目录里(Debug)
头部添加添加3个命名空间:
using System.Data.SQLite; //使用SQLite数据库必包含的头文件
using System.IO; //文件操作做文件,File.Exists函数需要
using System.Data.SqlClient; //cmd.ExecuteReader 函数需要
第三步:
【创建Sqlite数据库】 SQLiteConnection.CreateFile("testDB.sqlite");
先判断数据库文件是否存在
bool dbExist = File.Exists("DB.sqlite"); //通过File.Exists函数判断数据库文件是否已经存在,BOOL返回值为真或者假(TURL FALSE)
if (dbExist == false) //如果不存在,就创建
【初始化Sqlite数据库】 //创建连接字符串CONN,,,Version表示Sqlite版本 SQLiteConnection conn = new SQLiteConnection("Data Source=testDB.sqlite;Version=3;"); //设置数据库登录密码 conn.SetPassword("123456"); //打开数据库 conn.Open(); //创建一条数据‘login’,login内容:创建表USERNAME,并填入字段ID,NAME,PASS(包括字段名、字段类型格式、字段初始内容) string login = "create table user (id int(8) default(91),name varchar(16) default('admin'), password int(16) default(96333))"; //创建一个命令并包含命令内容 SQLiteCommand cmd = new SQLiteCommand(login,conn); //执行命令 cmd.ExecuteNonQuery(); //释放资源 conn.Close(); 【向数据库插入数据】 SQLiteConnection conn = new SQLiteConnection("Data Source=testDB.sqlite;Version=3;Password=123456;"); //注意这句 Password=123456; 打开带密码的数据库必须带上这个参数和相应的值 conn.Open(); string user1 = "insert into user (id,name,password) values(2,'小李',87654321)"; //使用insert into函数插入数据 SQLiteCommand cmd = new SQLiteCommand(user1, conn); cmd.ExecuteNonQuery(); conn.Close(); cmd.Dispose(); [插入变量数据] //在数据库中创建登录表,并插入变量数据 string u_name,u_id,u_pass; //u_id = Convert.ToInt32(textBox1.Text); 读取ID,只读数字 u_id = this.textBox1.Text; // 读取ID u_name = this.textBox2.Text; //读取名字,字符串形式 u_pass = this.textBox3.Text; //读取密码 /*************************************建数据库*************************************************/ SQLiteConnection.CreateFile("LOGINDB.sqlite"); SQLiteConnection conn = new SQLiteConnection("Data Source=LOGINDB.sqlite;Version=3"); conn.SetPassword("123456"); conn.Open(); string login = "create table user (id,name, password)"; SQLiteCommand cmd = new SQLiteCommand(login, conn); cmd.ExecuteNonQuery(); conn.Close(); /**********************************插入数据*******************************************************/ conn = new SQLiteConnection("Data Source=LOGINDB.sqlite;Version=3;Password=123456;"); //注意这句 Password=123456; 打开带密码的数据库必须带上这个参数和相应的值 conn.Open(); string cr = "insert into user (id,name,password) values( '" + u_id + "', '" + u_name + "','" + u_pass + "')"; //( '" + u_id + "', '" + u_name + "','" + u_pass + "')为固定表达式 cmd = new SQLiteCommand(cr, conn); cmd.ExecuteNonQuery(); conn.Close(); cmd.Dispose(); 查找并传递出数据库中的数据 //读取数据库中是否已经存在刚提交的数据,判断是否提交成功 string yz1 = ""; string yz2 = ""; string yz3 = ""; using ( conn = new SQLiteConnection("Data Source=DB.sqlite;Version=3;Password=123456")) { conn.Open(); using ( cmd = new SQLiteCommand()) { cmd.Connection = conn; cmd.CommandText = string.Format("select * from user where id ='" + inid + "' and name = '" + inname + "' and password='" + inpass + "' " ); using ( dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { if (dr.Read()) { yz1 = dr["id"].ToString(); yz2 = dr["name"].ToString(); yz3 = dr["password"].ToString(); textBox4.Text = yz1; //此步奏多余,只是在此演示一下读取并赋值的操作 textBox5.Text = yz2; textBox6.Text = yz3; MessageBox.Show("提交成功"); } else MessageBox.Show("提交失败,请重试!"); } } }
生命的意义在于学习,学习让生活变得精彩