2010-12-06 4 views
4

J'ai beaucoup de mal à me connecter à une base de données .sdf (sql compact edition). Je peux me connecter initialement pour extraire des lignes afin de vérifier un nom d'utilisateur/mot de passe, mais lorsque j'essaie d'ajouter des éléments à la base de données, soit par une commande SqlCeConnection/SqlCeCommand, soit en essayant d'ajouter des éléments. Je reçois:Problèmes de connexion à la base de données .sdf via SqlConnection/SqlCeConnection

A network-related or instance-specific error occurred while establishing 
a connection to SQL Server. The server was not found or was not accessible. 
Verify that the instance name is correct and that SQL Server is configured to 
allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error 
Locating Server/Instance Specified) 

lors de l'utilisation:

private void button1_Click_1(object sender, EventArgs e) 
{ 
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("Data Source=C:\\Users\\Tim\\Documents\\Visual Studio 2010\\Projects\\Dispatch POS\\Dispatch POS\\GhsDB.sdf"); 

    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); 
    cmd.CommandType = System.Data.CommandType.Text; 
    cmd.CommandText = "INSERT [Employee Table] (SSN, FirstName) VALUES ('555-23-4322', 'Tim')"; 
    cmd.Connection = sqlConnection1; 

    sqlConnection1.Open(); 
    cmd.ExecuteNonQuery(); 
    sqlConnection1.Close(); 
} 

ou lorsque je tente:

System.Data.SqlClient.SqlConnection sqlConnection1 = 
      new System.Data.SqlClient.SqlConnection("Data Source=C:\\Users\\Tim\\Documents\\Visual Studio 2010\\Projects\\Dispatch POS\\Dispatch POS\\GhsDB.sdf"); 

      System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); 
      cmd.CommandType = System.Data.CommandType.Text; 
      cmd.CommandText = "INSERT [Employee Table] (SSN, FirstName) VALUES ('555-23-4322', 'Tim')"; 
      cmd.Connection = sqlConnection1; 

      sqlConnection1.Open(); 
      cmd.ExecuteNonQuery(); 
      sqlConnection1.Close(); 

Rien ne se passe, il semble fonctionner jusqu'à ce que je vérifie le fichier sdf et voir rien n'a été ajouté. Je n'ai pas installé SQL Server CE, mais j'ai installé 2008 R2 (je travaille sur le projet de quelqu'un d'autre).

À l'heure actuelle, je ne m'inquiète pas des failles de sécurité, j'essaie juste d'ajouter un disque avec succès. Toute aide serait très appréciée, car j'ai passé environ trois ou quatre heures à travailler sur quelque chose que je suppose qu'il faudrait environ 20 minutes.

Répondre

10

Vous avez probablement trouvé la solution maintenant, mais si vous utilisez un fichier sdf, l'assemblage, vous devez ajouter une référence à System.Data.SqlServerCe puis quelque chose comme:

SqlCeConnection sqlConnection1= new SqlCeConnection(); 
sqlConnection1.ConnectionString = "Data Source = C:\\Users\\Tim\\Documents\\Visual Studio 2010\\Projects\\Dispatch POS\\Dispatch POS\\GhsDB.sdf"; 

System.Data.SqlServerCe.SqlCeCommand cmd = System.Data.SqlServerCe.SqlCeCommand; 
cmd.CommandType = System.Data.CommandType.Text; 
cmd.CommandText = "INSERT [Employee Table] (SSN, FirstName) VALUES ('555-23-4322', 'Tim')"; 
cmd.Connection = sqlConnection1; 

sqlConnection1.Open(); 
cmd.ExecuteNonQuery(); 
sqlConnection1.Close(); 
+0

Merci de m'avoir indiqué dans la bonne direction - apprécié! –

0

-vous le plus à utiliser Les classes sqlceconnection et sqlcecommand. comme ceci:

 SqlCeConnection conn = new SqlCeConnection(connectionString);    
     SqlCeCommand cmd = conn.CreateCommand(); 
     conn.Open(); 
Questions connexes