Я получаю ошибку исключения для своего кода. Помогите, пожалуйста - в чем проблема? (Я новичок в этом: /)

Моя база данных - это локальная база данных.

SqlConnection myconnection;

private void insertBtn_Click(object sender, EventArgs e)
{
        myconnection = new SqlConnection();
        myconnection.ConnectionString = "Data Source=C:\\Users\\Saeed\\Documents\\Visual Studio 2012\\Projects\\dictionary1\\dictionary1\\Database1.sdf";
        myconnection.Open();
        //string query = "INSERT INTO dictionary (id,enWord,faWord) VALUES (4,'pen','خودكار')";
        //SqlCommand cmd = new SqlCommand(query, myconnection);
        //cmd.ExecuteNonQuery();
}

Вот ошибка исключения:

Произошла ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: 26 - Ошибка при обнаружении указанного сервера / экземпляра)

0
Saeid 19 Апр 2016 в 19:18

2 ответа

Лучший ответ

Поскольку вы обращаетесь к файлу базы данных SQL Server Compact .sdf, вам нужно использовать {/ 0}, "nollow", "{} SqlCeCommand в отличие от классов SqlConnection и SqlCommand, которые вы бы использовали для традиционных подключений к SQL Server.

Кроме того, вы можете попробовать использовать параметр Persist Security Info=False; в строке подключения, используя пример, аналогичный упомянутые на ConnectionStrings.com с использованием

private void insertBtn_Click(object sender, EventArgs e)
{
    // Open your connection
    using(var myConnection = new SqlCeConnection(@"Data Source=C:\Users\Saeed\Documents\Visual Studio 2012\Projects\dictionary1\dictionary1\Database1.sdf;Persist Security Info=False;"))
    {
         // Build your query
         var query = "INSERT INTO dictionary (id,enWord,faWord) VALUES (4,'pen','خودكار')"
         // Build a command to execute
         using(var myCommand = new SqlCeCommand(query,myConnection))
         {
               // Open your connection
               myConnection.Open();
               // Execute your query
               myCommand.ExecuteNonQuery();
         }
    }
}
2
Rion Williams 19 Апр 2016 в 16:31

Ваша строка подключения неверна. Это должно выглядеть примерно так:

"Persist Security Info = False; Integrated Security = true; Initial Каталог = YOUR_DATABASE_NAME ; server = (local) "

Дополнительную информацию о строках подключения см. Здесь: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring (v = vs.110) .aspx

-1
momar 19 Апр 2016 в 16:26