7

我正在使用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:不支持關鍵字: '初始目錄'。

+0

你使用的是什麼數據庫服務器(SQL Server,MySQL,Postgresql等)? –

回答

13

檢查這裏:Database.OpenConnectionString Method (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); 
+1

嗅,我花了3個小時試圖弄清楚。乾杯馬男!讓我更加頭痛。 – Doomsknight

3

您可以使用下面的代碼

配置文件:

<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"); 
9

ARRRRHHHHHH !!!!! 這是我第二次碰到這個,grrrh - 浪費了幾個小時。

錯誤:

服務器遇到錯誤處理請求。例外消息是'不支持關鍵字:'初始目錄; MyDatabase;數據源'。'。查看服務器日誌獲取更多詳細信異常堆棧跟蹤是:

堆棧跟蹤:

at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at System.Data.SqlClient.SqlConnection..ctor(String connectionString, SqlCredential credential)

這是我的錯誤的連接字符串:

<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" />

看起來不錯吧? WRONG

最後,我發現了分號這裏:

Initial Catalog;MyDatabase

爲了校正它,我用等號:

Initial Catalog=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" />

0

我建議:


  1. 你可以清楚地特別是具有"並檢查您的連接字符串格式」。在我的情況是這樣的:


  • 您可以嘗試通過EF生成數據庫一次。
  • 相關問題