Windows Mobile连接数据库的几种方式

来源:互联网 发布:iphone 投影到mac全屏 编辑:程序博客网 时间:2024/05/18 02:05

有时间整理一下Windows Mobile连接数据库的几种方式:

连接的方式整理四种:
第一,使用WebService作为中介访问数据,在PDA中可以直接访问安装在访问器上的Web Service,通过Web Service就可以访问远
程数据库了.最简单的一种,使用Web Service可以在速度上会稍显得有点慢.

第二,直接访问.SQL Server2000或SQL Server2005都可以直接访问,如果Access数据库那就只能用上一种方法了。使用SQLCE工具连接数据库.

第三,PDA客户端与服务端连接.最费事的一种,也是最安全的一个.使用Socket,网络程序,客户端安装在PDA上,在PDA上使用Socket连接服务器传递数据,当然还得写一个访问器端,开启监听接受客户端的数据,并向将从数据种查询到的数据访问发送到客户端,使用这种方法比较复杂和麻烦。

第四,读写文件的形式.将从访问器上读取到的数据库信息写成文件的形式保存在PDA本地。如XML文件或INI文件

 

刚开始的时候记得尝试用了第一种方式,使用WebService连接数据库,感觉很简单,但有时候觉得还是慢,又不是很安全.为此采用了第三种方式,自己写了个服务端放在固定IP上,客户端通过Socket进行数据的传递.

闲下来时,尝试了一下用SQLCE连接如何,试了试,如下简单代码:

            string connectionString = @"Data Source=MobileCE.sdf";
            SqlCeConnection conObj=new SqlCeConnection(connectionString);
            conObj.Open();
            DataTable     dtPDA   =   null;
            SqlCeDataAdapter daPDA = new SqlCeDataAdapter();
       
          daPDA.SelectCommand   =   conObj.CreateCommand();
          daPDA.SelectCommand.CommandText = "select  username,userpwd  from login";
       
          dtPDA   =new   DataTable("login");  
                               
          daPDA.Fill(dtPDA);
          conObj.Close();
          this.dataGrid1.DataSource=dtPDA;

提示始终找不到数据库文件(提示:首先记得添加引用System.Data.SqlServerCE,导入命名空间using system.Data.SqlServerCe;),改了绝对路径也是不行.

最后从网上搜到了,连接字符串的问题,改为如下

SqlCeConnection conObj = new SqlCeConnection(("Data Source =" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "//MobileCE.sdf;")));

测试连接通过,显示到了数据库表中的数据.

若使用此路径时,还提示找不到数据库文件时,在项目上右键添加现有项,找到创建的sdf数据库文件(创建数据源时的.sdf文件),添加到项目中,此时在解决方案中就会有刚才添加到的sdf文件,在DEBUG文件中,也可以看到此文件,注意不要复制该文件,将文件直接复制到DEBUG目录下也是找不到该文件的.

原创粉丝点击