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("提交失败,请重试!");
                    }

                }
            }

 

posted @ 2019-10-14 09:09  狗狗王  阅读(900)  评论(0编辑  收藏  举报