Ошибка: ключевое слово не поддерживается: '(localdb) \ mssqlllocaldb; attatchdbfilename' \ Проблемы со строкой подключения к базе данных - PullRequest
0 голосов
/ 21 февраля 2019

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

Это начало работать не с ошибкой, сообщающей:

"Попытка присоединить базу данных с автоматическим именем для файла D: \ School Work \ Computing \ Year 14 cOmPUtInG wORk 2018-2O19 \ Coursework \ A2 Coursework \ A2 Coursework \ bin \ Debug \ TransportDatabase.mdf завершилась неудачно. База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC. "

Причина, по которой я полагаю, происходит из-за строки подключения в моем адаптерекоторый в настоящее время:

Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\TransportDatabase.mdf;Integrated Security=True

Чтобы противостоять этому, я попытался сделать AttachDbFilename похожим на мою строку базы данных в моей системе, которая выглядит следующим образом:

    SqlConnectionStringBuilder scStrBuilder = new SqlConnectionStringBuilder();
    string filepath = Application.StartupPath;
    filepath = filepath.Replace("\\bin\\Debug", "");
    scStrBuilder.AttachDBFilename = filepath + "\\TransportDatabase.mdf";
    scStrBuilder.DataSource = "(LocalDB)\\MSSQLLocalDB";
    scStrBuilder.IntegratedSecurity = false;

Таким образом, чтобы сделать это соответствующимСтрока подключения я сделал это:

    string filepath = Application.StartupPath;
    filepath = filepath.Replace("\\bin\\Debug", "");
    transportDataAdapter.Connection.ConnectionString = "(LocalDB)\\MSSQLLocalDB; AttatchDbFilename = " + filepath + "\\TransportDatabase.mdf;Integrated Security = False" ;

И вот когда возникает ошибка

Ключевое слово не поддерживается: '(localdb) \ mssqlllocaldb; attatchdbfilename'

Полный код моего метода выглядит следующим образом (на случай, если это поможет):

    TransportDataSetTableAdapters.PassengersTableAdapter transportDataAdapter = new TransportDataSetTableAdapters.PassengersTableAdapter();
    TransportDataSet dataSet = new TransportDataSet();
    string filepath = Application.StartupPath;
    filepath = filepath.Replace("\\bin\\Debug", "");
    transportDataAdapter.Connection.ConnectionString = "(LocalDB)\\MSSQLLocalDB; AttatchDbFilename = " + filepath + "\\TransportDatabase.mdf;Integrated Security = False" ;
    transportDataAdapter.Fill(dataSet.Passengers, dTpPickUpDate.Value.ToShortDateString());
    this.reportViewer.RefreshReport();
...