2010-12-06 2 views
4

У меня возникли серьезные проблемы с подключением к базе данных .sdf (sql compact edition). Я могу подключиться изначально, чтобы извлечь строки, чтобы проверить имя пользователя/пароль, но когда я пытаюсь добавить элементы в базу данных либо командой SqlCeConnection/SqlCeCommand, либо пытаюсь добавить элементы SqlClient/SqlCommand, мне не повезло. Я получаю:Проблемы с подключением к базе данных .sdf через 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) 

при использовании:

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

или когда я пытаюсь:

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

Ничего не происходит, это, кажется, работает, пока я не проверить файл SDF-и видеть ничего не имеет был добавлен. У меня нет SQL Server CE, хотя у меня установлен 2008 R2 (я работаю над чужим проектом).

Прямо сейчас я не беспокоюсь о дырах в безопасности, я просто пытаюсь успешно добавить запись. Любая помощь была бы высоко оценена, поскольку я потратил около трех или четырех часов на то, что мне кажется, займет около 20 минут.

ответ

10

Вероятно вы нашли решение сейчас, но если вы используете SDF файл, узел следует добавить ссылку на System.Data.SqlServerCe, а затем что-то вроде:

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

Спасибо, что указал мне в правильном направлении - оценили! – 2011-09-11 19:55:46

0

вы больше всего использовать sqlceconnection и sqlcecommand. например:

 SqlCeConnection conn = new SqlCeConnection(connectionString);    
     SqlCeCommand cmd = conn.CreateCommand(); 
     conn.Open(); 
Смежные вопросы