ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C# SQLCE 数据库操作

C# SQLCE 数据库操作

原创 Linux操作系统 作者:googlgoracle 时间:2012-07-10 15:55:54 0 删除 编辑

前几天在PDA上 用C# 测试了下对移动数据库的操作。关于搭建编程环境就不多说了。


主要是创建数据库,创建表,查询已经其它对数据库的操作,由于之前做过C++下对数据库的ADO访问,所以做起来不难。

SQLCE 数据库是同在移动设备上的数据库引擎。它的每个数据库就是一个sdf文件。



(1)创建了一个static 类 用于存储需要全局使用的变量


namespace SDTest
{
   public static class  GVariable
    {
       public static string sPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString());  ///程序执行的路径

       public const string FILENAME = "\\Test.sdf";  ///  sdf 文件

       public static SqlCeConnection SqlCeCon;   //用于数据库连接的全局变量

    }
}



(2)生成数据库使用如下语句:

string sCeConStr = GVariable.sPath + GVariable.FILENAME;

SqlCeEngine SQLEngine = default(SqlCeEngine);//??????????????生成SQLCE 数据库
SQLEngine = new SqlCeEngine("Data Source =" + sCeConStr);
SQLEngine.CreateDatabase();
 SQLEngine.Dispose();


(3)连接数据库的语句:


 GVariable.SqlCeCon = new SqlCeConnection("Data Source =" + sCeConStr);
   GVariable.SqlCeCon.Open();


以上语句中 sCeConStr 的值在调试运行时的值为:
/program file/your project name/ 

你在模拟器或是在真机上调试时 可以看到 一个 sdf 文件在这个文档下生成。

(4) 执行没有返回值的SQL语句


  string SQL;
            SQL = "create table TestTable(pcode nvarchar(30),pname  nvarchar(30),constraint   PK_emps   primary   key   (pcode))";

            // 执行没有返回值的SQL 语句。
            try
            {
                SqlCeTransaction ceTran = default(SqlCeTransaction);
                SqlCeCommand cecmd = default(SqlCeCommand);
                ceTran = GVariable.SqlCeCon.BeginTransaction();
                cecmd = new SqlCeCommand(SQL, GVariable.SqlCeCon, ceTran);
                cecmd.ExecuteNonQuery();
                ceTran.Commit(CommitMode.Deferred);
                cecmd.Dispose();
             )
catch (System.Exception ex)
            {
                MessageBox.Show("执行SQL 语句失败");
            }




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26221264/viewspace-735091/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 换码序列
请登录后发表评论 登录
全部评论

注册时间:2011-10-19

  • 博文量
    36
  • 访问量
    92273