日期:2014-05-17  浏览次数:20819 次

Windows Mobile Pocket PC 连接数据库
由于刚第一次接触智能设备程序设计,时间紧促,一些概念不是很明确,希望朋友详细指教,不胜感激。

我收到一个PDA程序,是在VS2005 下C#编写的,在VS2005下可以正常运行,但升级到VS2008后连接数据库会抛出异常。

我做了以下测试:

新建一个设备应用程序,目标平台是WIndows mobile 5.0 pocket pc sdk, .net Compact framework 版本号是 3.5。在一个form按钮上添加如下代码:

SqlConnection con = new SqlConnection();
  con.ConnectionString = "Data Source=WWW-077AEB9BB89;Initial Catalog=eVideoBill_ms;User ID=sa";
  SqlCommand cmd = new SqlCommand();
  cmd.CommandType = CommandType.Text;
  cmd.CommandText = "select * from TBL_TEST ";
  cmd.Connection = con;
  DataSet ds = new DataSet();
  SqlDataAdapter adp = new SqlDataAdapter(cmd);
  try
  {
  con.Open();
  adp.Fill(ds);
  MessageBox.Show(ds.Tables[0].Rows.Count.ToString());
  }
  catch (Exception ee)
  {
  MessageBox.Show(ee.Message);
  }
  finally
  {
  adp.Dispose();
  cmd.Dispose();
  con.Dispose();
  }

这段代码在普通的winform程序中测试通过,但是在windows mobile中运行到Open()时就会抛出异常。注:在运行前,我已经在windows mobile上安装了两个CAB包(我理解为.net framework和 数据库驱动),这两个包是从我收到的那个VS2005下能运行的项目中Copy过来的,如图所示。

问题就这样,网上搜索怀疑是这两个CAB包和升级后的程序不兼容,但到底该怎么解决一直没有尝试成功,由于时间紧迫,望大侠详细指教,谢谢。


------解决方案--------------------
ConnectionString 首先要在移动设备上能确保正确。

在移动设备上使用SQL Server我还真的是第一次看到(不过没有太注意)。使用SQL Server Compact Edition很常见,但是这时候 ConnectionString 就根本不是你的那种了,在ConnectionString 中实际上是直接指向数据库文件的路径的。
------解决方案--------------------
加我q把,我应该能帮你解决。q:287646795