数据库连接字符串的常见问题和解决方法
数据库连接字符串的常见问题和解决方法:
基本知识1:
SQL Server数据库的身份验证方式,分windows验证,SQL Server验证两种。打开你的企业管理器。在工具菜单选择——〉SQL Server配置属性(如果该项不可用,请展开你的数据库)切换到安全页,可以看到你的数据库允许的验证方式。如果你不清楚该应该使用哪个的话使用“SQL Server和Windows”
基本知识2:
确定连接字符串使用的是哪种方式身份验证方式。首先,我假设你的字符串是合法的。如果不确定本文后面附有几个常用的连接字符串。如果能看到你的连接字符串里有明确的User ID和PassWord就认为它是SQL Server的验证方式好了。
基本知识3:
在SQL Server数据库里添加登录(login)。展开你的数据库左边的树找到 “安全”文件夹,打开里面的“登录”。在这里添加。
基础知识4:
确定,数据库可用。从开始——>程序 打开你的查询分析器(不要从企业管理器打开)。这时,可以看到一个登录框,选择你的 连接字符串使用的验证方式(基本知识2),视情况输入你的 用户名和密码。如果登录成功,说明你的数据库,没有问题。如果不能登录。请察看基本知识1和基本知识2 ,修改身份验证方式和添加合适的登录(login)。
从出现的异常查找,连接字符串的错误:
“/WebApplication2”应用程序中的服务器错误。
-----------------------------------------------------------
用户 'MEYER\ASPNET' 登录失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以
了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 用户
'MEYER\ASPNET' 登录失败。
注释: 这个是ASP.net 使用Windows 身份验证的一个经典错误了:,按照基本知识3添加aspnet这个本地用户的登录。
未处理的异常: System.Data.SqlClient.SqlException: 无法打开登录'northwindow' 中请求的数据库。登录失败。用户 'sa' 登录失败
^^^^^^^^^^^^^ ^^^^^^^^^^
注释: 这里可以看出可能是数据库的名字写错了。把northwind写成了northwindow)
未处理的异常: System.Data.SqlClient.SqlException: SQL Server不存在或访问被拒绝
注释: 这个就可能是你的数据库服务器名字拼写错误,更多的情况是SQL Server数据库没有打开。
未处理的异常: System.Data.SqlClient.SqlException: 用户 'bb'登录失败。
注释: 这个可能是你的用户名和密码有问题。请按照基本知识4操作。
几个常用的数据库连接字符串:
1.使用SQL提供者的,使用SQL SERVER验证方式连接SQL Server northwind数据库
@"server=localhost;database=northwind;UID=sa;PassWord=";
2.使用SQl提供者的,使用windows集成验证方式连接SQL Server northwind数据库
@"Data Source=(local);Initial Catalog=Northwind;Trusted_Connection=Yes;";
3.使用OLEDB提供者的,使用windows集成验证方式连接SQL Server northwind数据库
@"Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Northwind;Trusted_Connection=Yes;";
4.使用OLEDB提供者的,使用SQL Server验证方式连接SQL Server northwind数据库
@"Provider=SQLOLEDB;server=localhost;database=northwind;UID=sa;PassWord=";
5.使用OLEDB提供者的,连接Oracle数据库,这个得建立别名,应该很少人使用
@"Provider=MSDAORA;Data Source=MyDatabaseAlias; User ID=MyUID;Password=MyPassword";
6. 使用OLEDB提供者的,连接Ms Access数据库
以下为引用的内容:
@"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=Data\MyDatabase.MDB";
7. 使用OLEDB提供者的,连接Ms Access数据库要带密码呢?
以下为引用的内容:
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\...\MySecure.MDB;
Jet OLEDB:System database=C:\...\MySystem.MDW;
User ID=MyUserName;Password=MyPassword;
8.使用OLEDB提供者的,连接MsAccess数据库还有一个带密码的
以下为引用的内容:
Provider=Microsoft.Jet.OLEDB.4.0; </B>
Data Source=C:\...\MyPasswordProtected.MDB;
Jet OLEDB:Database Password=MyPassword;