这个不难,而且很重要,但总忘,找了篇比较全的,作为资料。

原文链接http://developer.51cto.com/art/201107/275406.htm

关于数据库链接字符串的相关知识,我们介绍过很多,建议大家看看这两篇文章,《深入了解SQL Server连接字符串》和《MySql连接字符串的说明》,供参考。下面介绍ASP.NET数据库连接字符串总结

一、使用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();

原文链接:http://edu.codepub.com/2011/0516/31624.php

[转]ASP.NET数据库连接字符串总结的更多相关文章

  1. 【转】ASP.NET数据库连接字符串总结

    来源:http://blog.csdn.net/lutinghuan/article/details/5973897 ASP.NET数据库连接字符串总结 一.使用OleDbConnection对象连接 ...

  2. ASP.NET数据库连接字符串总结

    一.使用OleDbConnection对象连接OLE DB数据源 1.连接Access 数据库 Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data ...

  3. ASP.NET数据库连接字符串的加密与解密

    ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...

  4. Asp.Net 数据库连接字符串

    <configuration> <connectionStrings> <add name="DefaultConnection" providerN ...

  5. ASP.NET 5 :读写数据库连接字符串

    ASP.NET 5 :读写数据库连接字符串 1.概述 ASP.NET 5模板项目配置文件采用了JSON格式,你依然可以采用以前的xml格式.C#对web.config或app.config读写及加密有 ...

  6. ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

    ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...

  7. JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动

    JavaScript日历控件开发   概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...

  8. asp.net web.config数据库连接字符串加密与解密

    在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或者数据库发生变更,那么我们就不得不修改源程序并重新将其编译.最好的解决方法 ...

  9. .NET跨平台之旅:数据库连接字符串写法引发的问题

    最近在一个ASP.NET Core站点中遇到一个奇怪问题.当用dotnet run命令启动站点后,开始的一段时间请求执行速度超慢,有时要超过20秒,有时甚至超过1分钟,日志中会记录这样的错误: Sys ...

随机推荐

  1. Notification用法

    String message = "You should click come back now. It is time out more than 10 minutes."; / ...

  2. sqlserver 行转列、列转行[转]

    转自:http://www.cnblogs.com/luofuxian/archive/2012/02/23/2364328.html Sql Server 行转列.列转行   创建表:   CREA ...

  3. [bzoj 2159]Crash的文明世界

    今天看到一个鬼题 心情好的时候写 [题意]求树上所有点对距离的k次方和,所有边权为1 大爷方的题解:http://tonyfang.is-programmer.com/posts/204972.htm ...

  4. struts2+hibernate+spring+jquery返回json List列表

    1.引入包:struts2-json-plugin-2.1.8.1.jar json-lib-2.1.jar commons-collections-3.2.1.jar commons-beanuti ...

  5. Installing Lua in Mac

    Lua is distributed in source form. You need to build it before using it. Building Lua should be stra ...

  6. POJ 2255 Tree Recovery(根据前序遍历和中序遍历,输出后序遍历)

    题意:给出一颗二叉树的前序遍历和中序遍历的序列,让你输出后序遍历的序列. 思路:见代码,采用递归. #include <iostream> #include <stdio.h> ...

  7. POJ 1979 Red and Black(水题,递归)

    一开始理解错题意了,以为是走过的砖不能再重复走,最多能走多少个黑砖,结果写的递归陷入死循环...后来才明白原来可以重复走,问可以到达的磁砖数. #include <iostream> #i ...

  8. js和jquery获取文档对象以及滚动条位置

    <div style="width:120px;height:120px;border:1px solid red; position:absolute; left:800px; to ...

  9. java基础知识回顾之---java String final类之intern方法

    public class StringObjectDemo { /** * @param args */ public static void main(String[] args) { String ...

  10. Android 用Activity的onTouchEvent来监听滑动手势

    package com.example.activityOnTouchEvent; import android.app.Activity; import android.os.Bundle; imp ...