为什么 OleDbConnection 访问被拒绝 (SQL Server 2014(?
string connectionString =
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=UserInfo;Data Source=C:\...\SqlServerDbExample.mdf.;Trusted_Connection=False";
OleDbConnection oleConnection = new OleDbConnection(connectionString);
结果:SQL Server 不存在或访问被拒绝。
故意拼错提供程序名称会导致不同的消息:
"xxxSQLOLEDB.1"提供程序未在本地计算机上注册。
Data Source=C:\...\SqlServerDbExample.mdf
SQL Server 是一个服务器应用程序,您不连接到文件名*,而是通过网络地址或名称连接到服务器。
示例:http://www.connectionstrings.com/sql-server-native-client-11-0-oledb-provider/
*除非您要附加,在这种情况下,您不使用data source
来指定文件名。
这有效:
string connectionString =
"Provider=SQLOLEDB.1" + ";" +
"Integrated Security=SSPI" + ";" + //Windows authentication
"Persist Security Info=False" + ";" +
"User Instance=True" + ";" +
"Data Source=CTE-LAPTOP\SQLEXPRESS" + ";" +
"Initial Catalog=SqlServerDbExample" + ";" + //Database name
"AttachDBFilename=C:\..\SqlServerDbExample.mdf" + ""; //Filename
OleDbConnection oleConnection = new OleDbConnection(connectionString);