Строка подключения - ключевое слово не поддерживается: «начальный каталог» - PullRequest
11 голосов
/ 16 ноября 2011

Я использую объект базы данных Webmatrix.data для создания соединения с базой данных, однако ему не нравится строка моего соединения. Я запускаю его из MVC ASP.net.

Я пытался изменить его на сервер / базу данных, но все равно ошибки те же. Куда я иду не так?

        using (var db = Database.OpenConnectionString(@"Data Source=MY-HP\Serv;Initial Catalog=MyDBSQL;User ID=sa;Password=password"))
        {
            var items = db.Query("SELECT * FROM TaskPriority");
        }

Сведения об исключении: System.ArgumentException: ключевое слово не поддерживается: «исходный каталог».

Ответы [ 5 ]

17 голосов
/ 16 ноября 2011

проверьте здесь: Database.OpenConnectionString Метод (String, String)

попробуйте указать имя провайдера в качестве второго параметра из примера MSDN:

var connectionString = "Data Source=.\\SQLExpress;Initial Catalog=SmallBakery;Integrated Security=True";

var providerName = "System.Data.SqlClient";

var db = Database.OpenConnectionString(connectionString, providerName);
12 голосов
/ 21 сентября 2015

ARRRRHHHHHH !!!!! Это второй раз, когда я сталкиваюсь с этим, grrrh - потраченные впустую часы на нем.

Ошибка:

Сервер обнаружил ошибку при обработке запроса,Сообщение об исключении: «Ключевое слово не поддерживается:« исходный каталог; MyDatabase; источник данных ».».Смотрите журналы сервера для более подробной информации.Трассировка стека исключений:

Трассировка стека:

в System.Data.Common.DbConnectionOptions.ParseInternal (Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, BooleanfirstKey) в System.Data.Common.DbConnectionOptions..ctor (String connectionString, синонимы хеш-таблицы, логическое использование useOdbcRules) в System.Data.SqlClient.SqlConnectionString..ctor (String connectionString) в System.Data.SqlClient.SqlConnectionFory (StringConnectionString, DbConnectionOptions предыдущая) при System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup (ключ DbConnectionPoolKey, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions & userConnectionOptions) при System.Data.SqlClient.SqlConnection.ConnectionString_Set (ключ DbConnectionPoolKey) в System.Data.SqlClient.SqlConnection.set_ConnectionString (Строковое значение) в System.Data.SqlClient.SqlConnection..ctor (String connectionString, SqlCredential мандат)

Это была моя неверная строка соединения:

<add name="Production" connectionString="Password=Secret;Persist Security Info=True;User ID=MyUserID;Initial Catalog;MyDatabase;Data Source=aquickborwnfoxjumpedover.us-west-2.rds.amazonaws.com,1433" providerName="System.Data.SqlClient" />

Выглядит хорошо, верно? НЕПРАВИЛЬНО

В итоге я заметил здесь точку с запятой:

Исходный каталог; MyDatabase

Чтобы исправить это, я использовалзнак равенства:

Исходный каталог = MyDatabase

Правильная строка подключения:

<add name="ConnString" connectionString="Password=Secret;Persist Security Info=True;User ID=MyUserID;Initial Catalog=MyDatabase;Data Source=aquickborwnfoxjumpedover.us-west-2.rds.amazonaws.com,1433" providerName="System.Data.SqlClient" />

5 голосов
/ 29 сентября 2013

Вы можете использовать следующий код

Файл конфигурации:

   <connectionStrings>
   <add name="con" connectionString="Data Source=ServerName;Initial Catalog=master;Integrated Security=SSPI;" providerName="System.Data.SqlClient"></add>
  </connectionStrings>

cshtmlfile:

var db = Database.Open("con");

var selecteddata = db.Query("select * from movie");
1 голос
/ 06 февраля 2019

Для меня я получал эту ошибку, потому что я использовал шаблонное решение. Без моего ведома в шаблоне только установлена ​​поддержка sqlite. Мне пришлось установить Microsoft.EntityFrameworkCore.SqlServer и изменить вызовы в моем коде с UseSqlite на UseSqlServer.

0 голосов
/ 10 декабря 2017

Я предлагаю:


  1. Вы можете явно проверить формат строки подключения, особенно "и". В моем случае это:


  1. Вы можете попробовать снова сгенерировать дБ с помощью EF.
...