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

连接的方式整理四种:

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

 

第二、直接访问.SQL Server2000SQL 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目录下也是找不到该文件的.

 

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dongdingbaihe/archive/2009/10/20/4703423.aspx

posted @ 2010-09-14 15:17  quietwalk  阅读(1141)  评论(0编辑  收藏  举报