簡體   English   中英

為什么為OleDbConnection / C#設置InvalidOperationException?

[英]Why an InvalidOperationException for OleDbConnection / C#?

為什么為OleDbConnection / C#設置InvalidOperationException?

string connectionString =
  "Provider=SQLOLEDB.1;" +
  "Integrated Security=SSPI;" +
  "Persist Security Info=False;" +
  "Trusted_Connection=False;" +
  "Data Source=XXX-LAPTOP\\SQLEXPRESS;" +
  "Initial Catalog=C:\\...\\SqlServerDbExample.mdf";

  OleDbConnection oleConnection = new OleDbConnection(connectionString);

oleConnection.ServerVersion引發類型為System.InvalidOperationException的異常。

我已經查看了SQL Server Management Studio(SSMS):... {數據庫名稱}->屬性...安全-> Windows身份驗證模式(單選按鈕),僅失敗的登錄名(單選按鈕)...權限->視圖服務器權限-> {計算機名}->有效(標簽)->列出所有內容

Initial Catalog數據庫的邏輯名稱:

"Initial Catalog=MyDatabaseExample;"

否則,如果要將MDF文件附加到現有的SQLExpress實例,則需要使用AttachDBFilename

"AttachDBFilename=C:\\...\\SqlServerDbExample.mdf";

可以在有關SqlConnection.ConnectionString的文檔中找到SQL Server連接字符串中使用的鍵/值對的非常詳細的列表,盡管我不確定是否所有內容都適用於OleDbConnection。

我不知道是否有某種使用OleDb的要求,但是如果沒有阻止它,我建議直接使用SqlClient類而不是OleDb的類。

史蒂夫是正確的。 這有效:

string connectionString =
  "Provider=SQLOLEDB.1" + ";" +
  "Integrated Security=SSPI" + ";" +
  "Persist Security Info=False" + ";" +
  "Trusted_Connection=False" + ";" +
  "Data Source=CTE-LAPTOP\\SQLEXPRESS" + ";" +
  "Initial Catalog=SqlServerDbExample" + ";" + //Database name
  "AttachDBFilename=C:\\...\\SqlServerDbExample.mdf" + ""; //File name

OleDbConnection oleConnection = new OleDbConnection(connectionString);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM