2010-08-10 64 views
1

测试应用程序时,我就smartApplication工作,在这里当我试图连接到我的SQL Server CE 2005数据库把我.sdf文件,我得到的异常凡通过模拟器

的路径无效。检查数据库的目录。 [路径= d:\ SmartProject \ DBFile.sdf]

我的连接字符串是

数据源= d:\ SmartProject \ DBFile.sdf;密码= test123

和代码,以连接就像

string connectionString = "Data Source=D:\\SmartProject\\DBFile.sdf;Password=test123"; 
    SqlCeConnection Connection = new SqlCeConnection(connectionString); 
    SqlCeCommand comm = new SqlCeCommand(SqlSelectCommandText, Connection); 
    SqlCeDataAdapter da = new SqlCeDataAdapter(comm); 
    DataSet ds = new DataSet(); 
    try 
    { 
     Connection.Open(); 
     da.Fill(ds); 
     if (ds.Tables.Count > 0) 
      dataTable = ds.Tables[0]; 
     else 
      dataTable = new DataTable(); 
     bsuccessfullyExecuted = true; 
    } 
    catch (SqlCeException ex) 
    { 
     bsuccessfullyExecuted = false; 
     dataTable = null; 
    } 
    finally 
    { 
     Connection.Close(); 
    } 

当代码尝试打开连接时,它会抛出此异常,前提是该文件位于指定位置或目录。

它工作时,我只需将DBFile.sdf文件与.exe在bin中,并从连接字符串中删除数据库文件名以外的路径。

但是当我尝试通过模拟器访问它时,它显示此错误。只要通过支架和Windows Mobile Device Center连接即可。 它显示所有的页面,但是当我试图通过例外访问数据库吧..

回答

0

实际上,我们必须把DBFile.sdf在移动设备文件夹,现在连接字符串将

Data Source=\Temp\DBFile.sdf;Password=test123 

这个温度是在移动设备文件夹作为我们的设计者会话连接到通过ActiveSync连接的移动设备上的SQL Mobile数据库。

其结果是,在连接字符串到自动与BindingSource的生成的数据库是一个特殊的连接字符串,只有从VS2005内工作,并与数据源=移动设备开始.....

所以对于仿真器,我们必须将sdf文件放在Mobile Devide中,并且如上所述