2010-08-10 10 views
1

Je travaille sur smartApplication, ici quand je essaie de se connecter à ma base de données CE SQL Server 2005, je reçois l'exceptionOù placer mon dossier .sdf lorsque l'application test par Emulator

Le chemin est pas valide. Vérifiez le répertoire de la base de données. [Path = D: \ SmartProject \ DBFile.sdf]

Ma chaîne de connexion est

Source de données = D: \ SmartProject \ DBFile.sdf; Mot de passe = test123

et le code se connecter est comme

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(); 
    } 

lorsque le code essayez d'ouvrir la connexion, il jette cette exception à condition que le fichier est à l'endroit ou le répertoire spécifié.

Cela fonctionne quand je place simplement le fichier DBFile.sdf avec le fichier .exe dans bin et supprime le chemin à l'exception du nom de fichier de base de données de la chaîne de connexion. Mais quand j'essaie d'y accéder via Emulator, je montre cette erreur. à condition que son se connecter via le berceau et Windows Mobile Device Center. Il montre toute la page, mais lorsque je tente d'accéder au Db à travers exception ..

Répondre

0

En fait, nous devons mettre DBFile.sdf dans le dossier Mobile Device et maintenant la chaîne de connexion serait

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

cette température est le dossier Appareil mobile en tant que notre session de concepteur connecté à une base de données SQL Mobile qui se trouve sur un périphérique mobile connecté via ActiveSync.

En conséquence, la chaîne de connexion à la base de données qui est généré automatiquement avec le BindingSource est une chaîne de connexion spéciale qui fonctionne uniquement à l'intérieur VS2005 et il commence par DataSource = Mobile Device .....

Alors pour Emulator nous devons mettre le fichier sdf dans Mobile Devide et comme ci-dessus