C#-Home / 详解Asp.Net Sql数据库连接字符串

2010-04-18 22:00 281人阅读 评论(0) 收藏 举报

1.连接数据库文件

<add name="LocalSqlServer" connectionString="Data Source=./SQLExpress;Integrated Security=True;AttachDBFilename=|DataDirectory|TimeTracker.mdf;User Instance=true" />
SqlConnectionStringBuilder实例化时,要用到connectionString,如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString)。

一、Data Source
SqlConnectionStringBuilder的DataSource属性,对应connectionString中的Data Source,“Data Source”可以由下列字符串代替:“server”,“address”,“addr”和“network address”。
Data Source=./SQLExpress也可以写成这样Data Source=(local)/SQLExpress。

二、Integrated Security
SqlConnectionStringBuilder的IntegratedSecurity属性,对应connectionString中的Integrated Security,“Integrated Security”可以写成“trusted_connection”,为true时,使用当前的 Windows 帐户凭据进行身份验证,为false时,需要在连接中指定用户 ID 和密码。

三、AttachDBFilename
SqlConnectionStringBuilder的AttachDBFilename属性,对应connectionString中的AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。AttachDbFileName属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的App_Data目录所代替。
有一篇文章,专门解释DataDirectory是什么。

四、User Instance
SqlConnectionStringBuilder的UserInstance属性,对应connectionString中的User Instance ,该值指示是否将连接从默认的 SQL Server Express 实例重定向到在调用方帐户之下运行并且在运行时启动的实例。UserInstance=true,在这种情况下,SQLServerExpress为了把数据库附加到新的实例,建立一个新的进程,在打开连接的用户身份下运行。在ASP.NET应用程序中,这个用户是本地的ASPNET帐号或默认的NetworkService,这依赖于操作系统。为了安全地附加非系统管理员帐号(例如ASP.NET帐号)提供的数据库文件,建立一个独立的SQLServer用户实例是必要的。

附录:

DataDirectory是什么?

asp.net  2.0有一个特殊目录app_data,通常Sql  server  2005  express数据文件就放在这个目录,相应的数据库连接串就是:
connectionString="……  data  source=./SQLEXPRESS;Integrated  Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User  Instance=true"
这里有一个DataDirectory的宏,它表示什么意义呢?

DataDirectory是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory  简化了项目的共享和应用程序的部署。例如,无需使用以下连接字符串: 
"Data  Source=  c:/program  files/MyApp/app_data/Mydb.mdf" 
通过使用|DataDirectory|(包含在如下所示的竖线中),即可具有以下连接字符串: 
"Data  Source  =  |DataDirectory|/Mydb.mdf" 。

不仅仅是Sql server 2005 express中使用,也可以在其它的文件数据库中使用,例如Sqllite数据库文件的连接字符串:

<add  name="DefaultDB" 
connectionString="DriverClass=NHibernate.Driver.SQLite20Driver;Dialect=NHibernate.Dialect.SQLiteDialect;Data  Source=|DataDirectory|/data.db3" />

2.连接数据库服务器

<!--连接数据库服务器-->
  <add key="CRMonnection" value="Data Source=Sufei;Initial Catalog=CRM;Integrated Security=false;uid=1233;Password=123456"></add>

一般是这样写的,意思 我就不在多说了大家一看就知道了。

3.怎么样取呢来看个例子吧

先看下面的代码

错误提示:

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭。

原因:

<connectionStrings>

<add name="ExporttoExcel" connectionString="Data Source=2005090297878a\SQL08;AttachDbFilename=|DataDirectory|\Exporting.mdf;Integrated Security=True;User Instance=True"/>

</connectionStrings>

中的红色部分User Instance=True;只有SQL Server Express版的支持 自己的是 Microsoft SQL Server Enterprise Evaluation Edition 不支持

解决方法:

方法1:在连接属性的设置里边,点高级,将User Instance 设置为false,默认的true(我在中没有找到相应的选项,使用的是第二种方法)

方法2:更改WEB.CONFIG中的连接字符串中的User Instance 为false即可。

Code
<appSettings>
    <!--连接数据库服务器-->
        <add key="CRMonnection" value="Data Source=Sufei;Initial Catalog=CRM;Integrated Security=false;uid=nouter;Password=123456"></add>
        <add key="ForumName" value="漯河移动"/>
    <!--连接数据库文件-->
    <add key ="CRMConnectionString" value ="Data Source=./SQLEXPRESS;AttachDbFilename=|DataDirectory|CRM.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"/>
    </appSettings>

取的方法在这里

System.Configuration.ConfigurationSettings.AppSettings["CRMConnectionString"];

转载于:https://www.cnblogs.com/gzhnan/articles/2822730.html

C#-Home / 详解Asp.Net Sql数据库连接字符串相关推荐

  1. 093:QuerySet API详解-QuerySet转换为SQL的条件

    QuerySet API详解-QuerySet转换为SQL的条件: 生成一个 QuerySet 对象并不会马上转换为 SQL 语句去执行.比如我们获取 Book 表下所有的图书: books = Bo ...

  2. 详解强大的SQL注入工具——SQLMAP

    本文转自:详解强大的SQL注入工具--SQLMAP 前言 Windows下的注入工具好的又贵,免费的啊D.明小子等又不好用,我们根本没必要花 时间去找什么破解的havij.pangolin什么的,特别 ...

  3. 详解asp.net邮件收发系统

    详解asp.net邮件收发系统 通过邮件客户端,不需要登录邮箱网站我们就能直接收发邮件. 1 系统分析 邮件收发是各个网站几乎必备的功能,在用户注册.邮箱确认.邮箱客服.找回密码等环节有典型应用.但是 ...

  4. 一文详解Mybatis动态SQL,建议收藏

    一文详解Mybatis动态SQL,建议收藏 1.动态 SQL 2.IF 3.choose.when.otherwise 4.where 5.set 6.trim 7.SQL片段 8.foreach 1 ...

  5. angular字符串转成html,详解angular如何调用HTML字符串的方法

    详解angular如何调用HTML字符串的方法 前面的文章我们介绍过angular6.0的数据绑定,也就是前面页面如何调用后台的数据,我们接触到了调用普通数据--如:调用产品详情{{post.cont ...

  6. php strip_tag 回车,详解PHP函数 strip_tags 处理字符串缺陷bug

    详解PHP函数 strip_tags 处理字符串缺陷bug PHP 函数 strip_tags() 是一个常用函数,该函数可以剥去字符串中的 HTML.XML 以及 PHP 的标签.极大方便了对字符串 ...

  7. c语言标准库详解(七):字符串函数string.h

    c语言标准库详解(七):字符串函数<string.h> 头文件<string.h>中定义了两组字符串函数.第一组函数的名字以 str 开头:第二组函数的名字以 mem 开头.除 ...

  8. cookie 操作详解 (asp.net javascript)

    (1)ASP.NET cookie 操作详解|cookie 写入.读取.修改.删除2008年10月18日     //写入     protected void Button2_Click(objec ...

  9. BULK INSERT用法详解,文本导入SQL,字段数量不等实例.

    Bulk Insert命令详解 BULK INSERT 以用户指定的格式复制一个数据文件至数据库表或视图中. 语法 BULK INSERT [ [ 'database_name'.][ 'owner' ...

最新文章

  1. 通俗易懂的图解堆排序
  2. iOS8 Core Image In Swift:视频实时滤镜
  3. Git之变基方式Rebase的使用
  4. 4.12任务 apache结合php以及apache默认虚拟主机
  5. Java入门算法(递归篇)丨蓄力计划
  6. Fish Redux 使用指南
  7. 安卓应用安全指南 4.9 使用`WebView`
  8. Zabbix---6 监控 端口 连接数
  9. 你根本不会休息(转)
  10. AI从零开始之我们为什么要为了那个虚无缥缈的f而奋斗
  11. 高精度定位网络PAS的经济模式_RTK基站网络共享奖励模式
  12. 琵琶行用计算机弹,琵琶行三次弹
  13. 生活四大勤,让老人延年益寿
  14. 编译错误:找不到工程或库
  15. 装饰公司如何做seo
  16. 小程序源码:修复版薅羊毛拼团商城前端+后端
  17. 海关外贸企业大数据风控平台
  18. java 微信公众号之授权登录
  19. 清华山维EPS三维测图无法进行OSGB格式转换问题(实测)
  20. Git分支切换的正确操作,你真的会吗?

热门文章

  1. 设置VS2010中使用IntelliTrace来进行调试
  2. 在LINUX下架设防火墙
  3. Linux操作系统下共享文件夹设置方法介绍
  4. [转贴]漫谈计算机图书翻译的四种境界
  5. latex 特殊符号
  6. (转载)java工程师15本必读书籍推荐
  7. Leetcode 373. 查找和最小的K对数字 解题思路及C++实现
  8. 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化
  9. 基于组件的案例:购物车
  10. Linux CentOS各大网站镜像资源地址展示,各种rpm资源包下载地址,rpm安装包大全