天天看点

Windows Mobile开发之SQLite的使用

SQLite数据库作为一个开源的数据库,在IOS、Android等平台上得到了很广泛的应用,在运行效率上比起微软的SQLCE效率高很多,在网上有大家做性能比较。

参考博客如下:

http://www.cnblogs.com/egmkang/archive/2009/07/12/1521997.html

WM上使用SQLite及安装:

1.首先下载SQLite安装程序,有的是exe安装包,有的是ZIP压缩包,有的大大反应说,zip包里面的几个重要文件即可。

将解压的BIN目录下的CompareFramework目录下的SQLite.Interop.066.DLL文件放到WM设备或者是WM模拟器的相应的项目文件夹中;

将BIN目录下的System.Data.SQLite.DLL文件加载到VS2008中,即添加引用即可。如果开发的是Windows Mobile项目时,VS2008应该添加引用的System.Data.SQLite.DLL文件来源自BIN目录下的CompareFramework目录。

2.这样还需要一个SQLite管理工具,管理工具有很多,我用的是SQLiteSpy_1.9.1。

3.具体使用SQLite程序如下:

代码如下:

//将DataSet数据保存到SQLite数据库中
	//WM项目运行时所在的目录
            string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\Test.db3";
            SQLiteConnection conn = new SQLiteConnection("Data Source=" + path);
            conn.Open();
            SQLiteCommand cmd = conn.CreateCommand();
	//插入操作使用事物
            SQLiteTransaction tx = conn.BeginTransaction();
            cmd.Transaction = tx;
            try
            {
                foreach (DataRow row in ds.Tables["Users"].Rows)
                {

                    string sql = "insert into Users (name,age) values ('" + row[0] + "','" + row[1] + "')";
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                }
                tx.Commit();
                MessageBox.Show("插入数据成功!!");
            }
            catch (System.Data.SQLite.SQLiteException E)
            {
                tx.Rollback();
                MessageBox.Show("插入数据失败!!");

            }finally{
				conn.Close();
			}
------------------------------------------------------------------------------
	//快速插入数据
	conn.Open();
	string sql1 = "insert into Users (name,age) values ('Hello',23)";
	SQLiteCommand cmd = new SQLiteCommand(sql1, conn);
	cmd.ExecuteNonQuery();
----------------------------------------------------------------------------------			
            //读取数据 并显示
	try{
            string sql2 = "select * from Users";
            conn.Open();
            SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql2, conn);

            DataTable datatable = new DataTable();
            adapter.Fill(datatable);
            dataGrid1.DataSource = datatable;
           }
		   catch(Exception e){
				Console.WriteLine(e.ToString());
		   }finally{
				conn.Close();
			}