一、使用OleDbConnection对象连接OLE DB数据源

1.连接Access 数据库

Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data Source=Access文件路径”

Access 2003: “provider=Microsoft.Jet.Oledb.4.0;Data Source=Access文件路径”

Access 2007: “provider=Microsoft.Ace.Oledb.12.0;Data Source=Access文件路径”

备注:Access数据库只提供两个连接属性provider(数据提供程序)和data source(数据源);

Access2000\2003的文件格式是“.mdb”,,Access2007的文件格式是“.accdb”;

Access的数据提供程序版本是向下兼容的,在Win7下测试使用Microsoft.Jet.OLEDB.3.5提示“未在本地计算机上注册“Microsoft.Jet.OLEDB.3.5”提供程序。”,改用Microsoft.Jet.OLEDB.4.0或者Microsoft.Ace.OLEDB12.0完全可以访问Access2000的数据库文件。当然也可以尝试使用微软提供的MDAC 来修改provider的版本。

Asp.net连接Access数据库相对路径写法

Asp.net连接Access数据库时,通常我们将数据库连接字串写到web.config配置文件中。而连接字串中的数据库路径只能用绝对路径形式表示,这样如果要移动程序,就必须要修改web.config 中数据库连接字符串的数据库路径,很麻烦。如果写成相对路径形式如:~/database/test.mdb 也是不正确的。例如:

<connectionstrings>
    <add name="Access" connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;data source=~/database/test.mdb" providername="System.Data.OleDb" />
  </connectionstrings>

上面写法是错误的。

目前常见解决方法有2种:

1.1、通过使用 DataDirectory 关键词方法

从Asp.net 2.0 开始有App_Data目录来专门存放数据文件,它可以用来放Access,SQL Server Express、XML等数据文件。可以把Access数据库文件放在App_Data文件夹中,然后使用关键词 DataDirectoty来获取路径。

<connectionstrings>
    <add name="Access" connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb"  providername="System.Data.OleDb" />
  </connectionstrings>

1.2、在web.config 文件中设置两个字串

在 web.config 文件中设置两个字串,一个是驱动字符串,另一个是 Access 数据库文件的相对路径。使用时用 Server.MapPath() 来获取绝对路径,然后组合出来的连接字符串就可以使用了。

<connectionStrings>
    <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;data source={0}"
      providerName="System.Data.OleDb" />
</connectionStrings>
<appSettings>
    <add key="AccessPath" value="~/Database/test.mdb"/>
</appSettings>

后台使用时 代码如下:

private string GetConnStr()
{
    string connStr = WebConfigurationManager.ConnectionStrings["Access"].ConnectionString;
    connStr = connStr.Replace("{0}", Server.MapPath(WebConfigurationManager.AppSettings["AccessPath"].ToString()));
    return connStr;
}

2.连接Excel数据库

Excel 2003: “provider=Microsoft.Jet.OLEDB.4.0;Data Source=Access文件路径;extended properties=excel 8.0”

Excel 2007: “provider=Microsoft.Ace.OLEDB.12.0;Data Source=Access文件路径;extended properties=excel 12.0”

备注:在代码中引用工作表时,应将表名表示为“[工作表名$]”,遇到字段为数据库保留关键字时,给该字段名加上[]以示区别,如定义select 语句时:string connStr=”select * from [login$] where username=’abc’ and [password]=’abc123’ ”;
如果在数据表中用数字作为文本类型数据时,则应在数字前加单引号将默认的数值强行设定为文本类型。

3.连接SQL Server数据库

  1. provider=SQLOLEDB;  
  2. Data Source=服务器名;  
  3. Initial Catalog=数据库名;  
  4. uid=用户;  
  5. pwd=密码 

二、使用SqlConnection对象连接SQL Server数据库

声明:以下连接的属性都可以参考“SQL Server 数据库连接字符串参数一览表”取它的别名;除了必须设置的属性以外还可以设置其他辅助的属性。如Connect Timeout、Encrypt等

设置数据库文件路径的方法:

1.使用绝对路径:“AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf”

2.使用服务器相对路径:“AttachDbFilename=”+Server.MapPath(“\\App_Data\\data.mdf”)

3.使用最简单的相对路径:“AttachDbFilename=|DataDirectory|\\data.mdf”

推荐使用第3种方式,“|DataDirectory|”代表ASP.NET项目里自动创建的App_Data文件夹

1.以SQL Server验证模式连接SQLServer

(1)以数据库名连接方式
1. Server=服务器名;  
2. Database=数据库名称;  
3. User ID=用户名;  
4. Password=密码 
或者(使用缩写与别名)
1. Server=服务器名;   
2. Initial Catalog=数据库名称;  
3. Uid=用户;  
4. Pwd=密码 
(2)以数据库文件完整路径连接方式
“Serve=服务器名;AttachDbFilename=数据库文件路径;User ID=用户名;Password=密码”
示例:
1. Server=.\SQLEXPRESS; Database=DatabaseName; User ID =sa; Password=abc123”  
2. Server=.\SQLEXPRESS; Initial Catalog =DatabaseName; Uid =sa; Pwd=abc123”  
3. Server=(local)\SQLEXPRESS; AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf;
4. User ID =sa; Password=abc123” 
备注:密码可以为空。
2.以Windows 验证模式连接SQL Server
(1)以数据库名连接方式
1. Server=服务器名;  
2. Database=数据库名称;  
3. Integrated Security=SSPI 
(2)以数据库文件完整路径连接方式
“Serve=服务器名;AttachDbFilename=数据库文件路径; Integrated Security=true”
示例:
1. Server=服务器名;  
2. Database=数据库名称;  
3. Integrated Security=SSPI  
4. Server=(local)\SQLEXPRESS;   
5. AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf;  
6. Integrated Security=true” 
备注:SSPI即为true

三、使用OdbcConnection对象连接ODBC数据源“Driver=数据库提供程序名;Server=服务器名; Database=数据库名;Trusted_Connection=yes”
示例:首先要在计算机管理à数据源à配置好相对应的数据源(选择数据库类型,设置数据库文件路径与相对应的数据库名)
1. Driver= Microsoft.Jet.OLEDB.4.0;  
2. Server=.\SQLEXPRESS;   
3. Database=DatabaseName;  
4. Trusted_Connection=yes 
四、使用OracleConnection对象连接Oracle数据库
1. Data Source=Oracle8i;  
2. Integrated Security=yes 
五、在ASP.NET项目中的web.config文件里配置数据库连接并在程序代码中获取连接字符串
1.在<connectionStrings> 标签里添加连接
1. <connectionStrings>   
2. <add name="ConnectionName" connectionString="Server=.\SQLEXPRESS;Database=DatabaseName;
3. User ID=sa;Password=abc123"   
4. providerName="System.Data.SqlClient" />   
5. </connectionStrings> 
或者
1. <connectionStrings>   
2. <add name="ConnectionName" 
3. connectionString="Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\data.mdf;
4. Integrated Security=true" 
5. providerName="System.Data.SqlClient" />   
6. </connectionStrings> 
在程序代码中获取<connectionStrings> 标签里的连接字符串:
引用命名空间:
1. Using System.Configuration ;  
2. string connStr = ConfigurationManager.ConnectionStrings["ConnectionName"].ToString(); 
2.在<appSettings>标签里添加连接
1. <appSettings>  
2. <add key="ConnectionName" 
3. value="Server=.\SQLEXPRESS;Database=DatabaseName;User ID=sa;Password=abc123" />  
4. </appSettings> 
或者
1. <appSettings>  
2. <add key="ConnectionName"   
3. value="Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\data.mdf;Integrated Security=True" />  
4. </appSettings> 
在程序代码中获取<appSettings> 标签里的连接字符串:
引用命名空间:
1. Using System.Configuration ;  
2. string connStr = ConfigurationManager.AppSettings["ConnectionName"].ToString();