为什么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身份验证模式(单选按钮),仅登录失败(单选按钮) ...权限 - >查看服务器权限 - > {computer name} - >有效(标签) - >一切都列出
答案 0 :(得分:0)
Initial Catalog
想要数据库的逻辑名称:
"Initial Catalog=MyDatabaseExample;"
否则,如果您希望将MDF文件附加到现有的SQLExpress实例,则需要使用AttachDBFilename
"AttachDBFilename=C:\\...\\SqlServerDbExample.mdf";
可以在关于SqlConnection.ConnectionString的文档中找到SQL Server连接字符串中使用的密钥\值对的非常详细的列表,尽管我不确定是否所有内容都适用于OleDbConnection。
我不知道是否有某种要求使用OleDb,但如果没有什么可以阻止它我建议直接使用SqlClient类而不是OleDb类。
答案 1 :(得分:0)
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);