Невозможно установить строку подключения на LocalDb с помощью OLEDB - PullRequest
0 голосов
/ 29 июня 2018

Доброе утро, ребята,

Мне глупо задавать этот вопрос, но я искал повсюду и, возможно, все вопросы по этому вопросу и не мог найти решение, которое бы сработало для меня.

Короче говоря. Я использую локальную базу данных под названием TestDB.mdf в приложении Windows Form. Приложение предназначено для выполнения (в соответствии с текущими) двух простых вещей.

1. Import data from excel document into the database - which I don't have any issues with.

и ...

2. Clear all data stored in that database - this is where I am struggling

Для импорта данных в базу данных (точка 1) я использую две строки подключения. Один для excelConnectionString

string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " +
                    "C:\\Users\\User.AR\\Desktop\\export.xls; " +
                    "Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";

и второй для sqlConnectionString

string sqlConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=c:\users\arkadiusz.rzepka\source\repos\Database_application\Database_application\TestDB.mdf;Integrated Security=True";

Затем я использую SqlBulkCopy для импорта всех данных, и все работает как чудо.

Теперь проблема, которую я вижу, заключается в том, что я не могу открыть соединение, чтобы удалить все данные из одной базы данных. Я перешел к свойствам своей базы данных, чтобы найти строку подключения, и это было представлено в следующем формате:

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User.AR\source\repos\Database_application\Database_application\TestDB.mdf;Integrated Security=True

Мне пришлось изменить вышеуказанную строку подключения, так как я получал ошибки, такие как missing provider, should be like Provider=SQLOLEDB, после добавления поставщика мне пришлось изменить Integrated Security = SSPI, и теперь я получаю ошибку, такую ​​как SQL Server does not exist or access denied

Мой код для проверки того, было ли открыто соединение, представлен ниже, и я был бы признателен, если бы вы сообщили о том, что я делаю неправильно.

    private void DeleteAllRecords()
    {
        string connectionString = @"Provider=Sqloledb;Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\User.AR\source\repos\Database_application\Database_application\TestDB.mdf;Integrated Security=SSPI";
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            try
            {
                connection.Open();
                MessageBox.Show("Connection openned successfully!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

1 Ответ

0 голосов
/ 29 июня 2018

Попробуйте использовать двойную черту в путях ваших строк подключения вместо одной. Так было бы так:

string connectionString = @"Provider=Sqloledb;Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\User.AR\\source\\repos\\Database_application\\Database_application\\TestDB.mdf;Integrated Security=SSPI";

...