7

Tôi đang sử dụng thực thể Cơ sở dữ liệu của Webmatrix.data để tạo kết nối cơ sở dữ liệu, tuy nhiên nó không giống như chuỗi kết nối của tôi. Tôi đang chạy nó từ MVC ASP.net.Chuỗi kết nối - Từ khóa không được hỗ trợ: 'catalogue ban đầu'

Ive đã thử thay đổi nó thành máy chủ/cơ sở dữ liệu, nhưng vẫn sai sót. Tôi làm sai ở đâu?

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

Chi tiết ngoại lệ: System.ArgumentException: Từ khóa không được hỗ trợ: 'catalogue ban đầu'.

+0

Máy chủ cơ sở dữ liệu nào (SQL Server, MySQL, Postgresql, v.v ...) bạn đang sử dụng? –

Trả lời

13

check here: Database.OpenConnectionString Method (String, String)

thử để xác định tên nhà cung cấp như tham số thứ hai, từ ví dụ MSDN:

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

var providerName = "System.Data.SqlClient"; 

var db = Database.OpenConnectionString(connectionString, providerName); 
+1

Sniff, tôi đã dành 3 giờ cố gắng tìm ra điều này. Chúc mừng ma người đàn ông! Giúp tôi đau đầu hơn. – Doomsknight

3

Bạn có thể sử dụng mã dưới đây

tập tin Config:

<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 !!!!! Đây là lần thứ hai tôi gặp phải vấn đề này, những giờ lãng phí trên đó.

Lỗi:

Máy chủ gặp lỗi khi xử lý yêu cầu. Thông báo ngoại lệ là 'Từ khóa không được hỗ trợ:' danh mục ban đầu; MyDatabase; nguồn dữ liệu '.'. Xem nhật ký máy chủ để biết thêm chi tiết. Trường hợp ngoại lệ stack trace là:

stacktrace:

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)

Đây là chuỗi kết nối bị lỗi của tôi:

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

Trông đúng tốt? WRONG

Cuối cùng tôi phát hiện các dấu chấm phẩy ở đây:

Initial Catalog;MyDatabase

Để khắc phục nó, tôi đã sử dụng một dấu bằng:

Initial Catalog=MyDatabase

Chuỗi kết nối đúng:

<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

Tôi đề nghị:


  1. Bạn có thể kiểm tra định dạng chuỗi kết nối của bạn rõ ràng Đặc biệt " và".Trong trường hợp của tôi đây là:


  1. Bạn có thể thử tạo db bởi EF một lần nữa.
Các vấn đề liên quan