当前位置:编程学习 > C#/ASP.NET >>

数据库连接字符串问题

1、Windows身份认证连接字符串
<add name="NORTHWNDConnectionString" connectionString="DataSource=.\STARRYCHENG;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True; User Instance=True" providerName="System.Data.SqlClient" />


问题一:运行时报错,“此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭”,改为“Sa”账户登录就没有问题了,请问这是为什么呢???2、改为“混合身份认证”就没有问题了,如下:
<add name="NORTHWNDConnectionString" connectionString="Data Source=.\STARRYCHENG;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;uid=sa;pwd=123456;" providerName="System.Data.SqlClient" />

问题二:“AttachDbFilename=|DataDirectory|\NORTHWND.MDF”节点中“DataDirectory”表示什么呢???数据库的名字好长啊,“F9DF2E8D13D44D72FD382A393E851C93_MANAGED CODE\CREATING-CHART-LINQ-TO-SQL-SAMPLE\CREATINGCHARTLINQTOSQL.WEB\APP_DATA\NORTHWND.MDF”是不是和这个数据库的名字有关系呢??? 

数据库安装没有任何问题,混合身份认证。。。
--------------------编程问答-------------------- 问题一:
在sqlserver连接属性的设置里边,点高级,将User Instance 设置为false,默认的true。
或者将连接字符串中的User Instance 为false,这样应该就好了。
另外告诉你一点:User Instance=True;只有SQL Server Express版的支持
问题二:
DataDirectory指的是默认的“数据库文件存放路径”。AttachDbFilename意思是需要附加的数据库文件名称。
northwind数据库只是微软提供的一个示例,用来学习、使用的。
数据库安装使用混合身份,同时需要注意系统用户、权限、实例等等方面。 --------------------编程问答-------------------- 结贴率有点低,建议你多看一点数据库方面的书籍 --------------------编程问答--------------------
引用 1 楼 dinglang_2009 的回复:
问题一:
在sqlserver连接属性的设置里边,点高级,将User Instance 设置为false,默认的true。
或者将连接字符串中的User Instance 为false,这样应该就好了。
另外告诉你一点:User Instance=True;只有SQL Server Express版的支持
问题二:
DataDirectory指的是默认的“数据库文件存放路径”。Attac……


“User Instance”只有Express版有,在企业版里用什么呢???

“DataDirectory”需不需要程序控制他的值呢??? --------------------编程问答-------------------- 顶一下。。。 --------------------编程问答-------------------- “F9DF2E8D13D44D72FD382A393E851C93_MANAGED CODE\CREATING-CHART-LINQ-TO-SQL-SAMPLE\CREATINGCHARTLINQTOSQL.WEB\APP_DATA\NORTHWND.MDF”

数据库的名字那么长,它是怎么识别的呢??? --------------------编程问答-------------------- --------------------编程问答-------------------- 1. 连接串中的 Integrated Security=True; 决定了你的连接使用Windows身份认证。
2. 数据库安装没有任何问题,混合身份认证。。。,这个说明你的数据库用的SQL Server自带的身份认证模式,使用SQL Server的帐户登录。
3. 1与2的冲突,导致了你的问题出现。

解决办法任选一:
1. 修改连接串 Integrated Security=false,并提供SQL Server登录帐号
2. 修改SQL Server服务器的身份认证模式为Windows身份认证 --------------------编程问答--------------------
引用 7 楼 abbey 的回复:
1. 连接串中的 Integrated Security=True; 决定了你的连接使用Windows身份认证。
2. 数据库安装没有任何问题,混合身份认证。。。,这个说明你的数据库用的SQL Server自带的身份认证模式,使用SQL Server的帐户登录。
3. 1与2的冲突,导致了你的问题出现。

解决办法任选一:
1. 修改连接串 Integrated Security=fa……


有点模糊。。。 --------------------编程问答-------------------- 告诉你个最简单的方式 打开vs工具->视图->服务器资源管理器->右键数据库连接(选择添加连接)->选择Microsoft sql server->继续->填写服务器名,登录方式等等,配置好后点击高级->弹出提示框中就有标准的连接池 --------------------编程问答-------------------- --------------------编程问答-------------------- <add key="ConnStr" value="Data Source=(local);Database=NORTHWND;Uid=sa;Pwd=xxxx5354"></add> --------------------编程问答-------------------- --------------------编程问答--------------------
引用 12 楼 starryplayer 的回复:
顶一下。。。


这还有顶的意义吗?

之前都回答你了。你在安装SQL Server时选择的混合身份认证,但是你在连接SQL Server时连接串里却又使用了Windows身份认证,所以造成无法登录的结果。

连接串里的Integrated Security决定连接使用何种认证方式。
    True:使用Windows身份认证
    False:使用SQL Server内置身份认证,就平时说的混合认证。 --------------------编程问答-------------------- 直接简单点不得了,add name="xxxx" connectionString ="server=.;database=xxxx;Integrated Security=true"或server=.\sqlexpress,sa登陆就sa=xxx,pwd=xxx --------------------编程问答-------------------- --------------------编程问答-------------------- 订下大的
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,