谁能帮我解释几段代码

qq348043275 2010-10-06 02:39:23
网上下了个订餐系统 看不明白

为什么connectionstrings里面没有存数据库用户名和密码?

那个数据库连接类我也没弄明白什么意思

有空的大哥给翻译一下啊

没找到数据库用户名和密码啊 现在数据库都连不上

求教了!

web.config
<appSettings>
<add key="DBName" value="SQLDB" />
<add key="roles" value="admin,customer"></add>
<add key="roles1" value="customer"></add>
<add key="roles2" value="admin"></add>
<add key="MailHost" value="smtp.163.com,25,paulwang04@163.com,88888888,paulwang04@163.com"/>
<add key="MailClient" value="wangshuhao@sohu.com"/>
</appSettings>
<connectionStrings>
<add name="SQLDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Dinner.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>




dbconn类



using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Data.Common;
using System.Web.Configuration;

namespace ImpDDal
{
public class DbConnectionStore
{
public static DbConnectionStore TheInstance = new DbConnectionStore();
public static readonly string DBNAME = System.Web.Configuration.WebConfigurationManager.AppSettings["DBName"];

private DbConnectionStore()
{
}

public DbConnection GetConnection()
{
ConnectionStringSettings cnSettings = DbConnectionStore.TheInstance.GetConnectionStringSettings();
DbProviderFactory providerFactory = DbProviderFactories.GetFactory(cnSettings.ProviderName);
DbConnection cn = providerFactory.CreateConnection();
cn.ConnectionString = cnSettings.ConnectionString;
try
{
cn.Open();
return cn;
}
catch (Exception ex)
{
throw new Exception("无法连接到服务器", ex);
}
}

public ConnectionStringSettings GetConnectionStringSettings()
{
ConnectionStringsSection connectionStringsSection = WebConfigurationManager.GetSection("connectionStrings") as ConnectionStringsSection;
ConnectionStringSettingsCollection connectionStrings = connectionStringsSection.ConnectionStrings;
ConnectionStringSettings connStringSettings = connectionStrings[DBNAME];
return connStringSettings;
}
}
}
...全文
100 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujiayou 2010-10-10
  • 打赏
  • 举报
回复
用的是windows登录
wuyq11 2010-10-06
  • 打赏
  • 举报
回复
AttachDbFileName 已在 ADO.NET 2.0 中进行了扩展,引入了 |DataDirectory|(包含在管道符号中)替代字符串。DataDirectory 与 AttachDbFileName 结合使用可指示数据文件的相对路径,允许开发人员创建基于数据库源的相对路径(而无需指定完整路径)的连接字符串。

连接字符串解释
qq348043275 2010-10-06
  • 打赏
  • 举报
回复
没人懂吗^^
qq348043275 2010-10-06
  • 打赏
  • 举报
回复
AttachDbFilename=|DataDirectory|\Dinner.mdf; 网上说这个是自动附加数据库可是也不能自动附加啊~,~
qq348043275 2010-10-06
  • 打赏
  • 举报
回复
帮我解释下这个好不好
<add name="SQLDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Dinner.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

\SQLEXPRESS是不是服务器的名字?
AttachDbFilename=|DataDirectory|\Dinner.mdf; 这个有什么用?
还有为什么没有数据库名
q107770540 2010-10-06
  • 打赏
  • 举报
回复

SQL Server 2005 不允许远程连接解决方法

做课程设计时,很多学生都遇到这个问题。把解决方法写在这儿,供参考。

刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。

1. 数据库引擎没有启动。

有两种启动方式:

(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;

(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;

使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.

2. 是否已经允许远程连接。

这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。


在SQLServer 实例上启用远程连接
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”,
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息:
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止,
然后单击“启动”,重新启动MSSQLSERVER 服务。

启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,
再单击“启动”,单击“确定”按钮返回

在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。

在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。



在使用.NET开发进行时,会遇到使用连接字符串连接SQL Server 2005数据库使用机器名称和localhost都能连接,但是使用IP地址却不能连接的问题,解决的办法是在SQL Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。
qq348043275 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q107770540 的回复:]
Integrated Security=True
==
使用的是windows身份验证 ,还要数据库的用户名和密码做什么?
[/Quote]
在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败

数据库还是连不上啊,他用的那方法是自动能附加数据库?

还有用ConnectionStringsSection 、ConnectionStringSettings 这些有什么好处啊?
为什么弄的这么麻烦?
q107770540 2010-10-06
  • 打赏
  • 举报
回复
Integrated Security=True
==
使用的是windows身份验证 ,还要数据库的用户名和密码做什么?
qq348043275 2010-10-06
  • 打赏
  • 举报
回复
连接字符串没 user 和pwd啊,现在数据库都连不上呢……郁闷,不知道他把 user和pwd写哪了
七爷 2010-10-06
  • 打赏
  • 举报
回复
<add name="SQLDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Dinner.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

这不就是你的链接 字符串吗
qq348043275 2010-10-06
  • 打赏
  • 举报
回复
高手们帮忙看下啊~~

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧