C#与SQLite数据库

1.添加引用 System.Data.SQLite.dll

2.using System.Data.SQLite;

3.原理步骤:  

 string path = "c:\\mydb.db";
 if (!File.Exists(path))    //1.如果数据库不存在,就创建数据库
 {
   SQLiteConnection.CreateFile(path);
 }
SQLiteConnection conn = new SQLiteConnection("Data Source="+path);    //2.连接数据库
conn.Open();    //3.打开数据库
SQLiteCommand comm = conn.CreateCommand();   //4.创建命令
comm.CommandText = "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='tablename'"; //5.给命令传sql语句,搜索tablename表是否存在
SQLiteDataReader reader = comm.ExecuteReader();    //6.执行命令
reader.Read();    //7.获取结果的"指针"
int num = reader.GetInt32(0);  //8.第一行数据的第0个值
reader.Close();    //关闭reader,如果不关闭,下面使用comm命令执行sql语句会报错
conn.Close();   //关闭连接

将txt中的数据写入到sqlite数据库中的函数。//参数file是txt文件的路径名

 static void TxtToSQLite(string file)
        {
            string path = "c:\\mydb.db";
            string sqlData = "(";
            if (!File.Exists(path))
            {
                SQLiteConnection.CreateFile(path);
            }
            SQLiteConnection conn = new SQLiteConnection("Data Source=" + path);
            conn.Open();
            SQLiteCommand comm = conn.CreateCommand();

            StreamReader sReader = new StreamReader(file);
            string strLine = sReader.ReadLine();  //读取文件的第一行            
            string tableName = "year" + strLine.Substring(24, 4);
            //如果数据库中没有这个表就创建一个
            comm.CommandText = "CREATE TABLE IF NOT EXISTS " + tableName + "(ID integer, altitude double, longitude double, p4 integer, p5 integer, p6 integer, p7 integer, p8 integer, p9 integer, p10 integer, p11 integer, p12 integer, p13 integer)";
            comm.ExecuteNonQuery();
            while (strLine != null)
            {
                while (strLine.IndexOf("  ")!=-1)
                {                   
                    strLine = strLine.Replace("  ", " ");
                }
                strLine = strLine.Replace(" ", ",");
                sqlData = sqlData+strLine+"),(";
                strLine = sReader.ReadLine();
            }
            sqlData = sqlData.Remove(sqlData.Length - 2, 2);
            comm.CommandText = "INSERT INTO " + tableName + " VALUES " + sqlData ;    
            try
            {
                comm.ExecuteNonQuery();
            }
            catch (System.Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }            
            sReader.Close();
            conn.Close();
        }

txt数据格式:

 

说明:sqlite_master 、 SQLITE_TEMP_MASTER(存储临时表)

  获得所有表的列表:

SELECT name FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master) WHERE type=tableORDER BY name

 下载:System.Data.SQLite.dll   https://files.cnblogs.com/files/lwngreat/System.Data.SQLite.rar

posted @ 2015-08-10 09:24  lwn6  阅读(282)  评论(0编辑  收藏  举报
什么是幸福?天天在做自己想做的事情,家人、同事、朋友、客户、网友都和和睦睦,身体健康、钱包鼓鼓、女朋友天天开心、生活无忧无虑就是最大的幸福