数据库连接字符串问题
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数据库只是微软提供的一个示例,用来学习、使用的。
数据库安装使用混合身份,同时需要注意系统用户、权限、实例等等方面。 --------------------编程问答-------------------- 结贴率有点低,建议你多看一点数据库方面的书籍 --------------------编程问答--------------------
“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身份认证 --------------------编程问答--------------------
有点模糊。。。 --------------------编程问答-------------------- 告诉你个最简单的方式 打开vs工具->视图->服务器资源管理器->右键数据库连接(选择添加连接)->选择Microsoft sql server->继续->填写服务器名,登录方式等等,配置好后点击高级->弹出提示框中就有标准的连接池 --------------------编程问答-------------------- --------------------编程问答-------------------- <add key="ConnStr" value="Data Source=(local);Database=NORTHWND;Uid=sa;Pwd=xxxx5354"></add> --------------------编程问答-------------------- --------------------编程问答--------------------
这还有顶的意义吗?
之前都回答你了。你在安装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