zoukankan      html  css  js  c++  java
  • 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("提交失败,请重试!");
                        }
    
                    }
                }
    生命的意义在于学习,学习让生活变得精彩
  • 相关阅读:
    标准函数头部注释
    排序
    #define _INTSIZEOF(n)
    并发编程资料
    memory model
    Ubuntu搜狗输入法的使用
    gprof
    xml_editor
    创建本地Ubuntu镜像
    设计模式9:建造者模式
  • 原文地址:https://www.cnblogs.com/gougouwang/p/11669570.html
Copyright © 2011-2022 走看看