三层架构 连接字符串写在那一层

小小爱好者 2011-06-10 12:48:35
加入想用三层架构构建一个程序对数据库进行访问,那么数据库的连接字符串在第一层写出,还是在第二层写出。

我的意思是
1,是第一层写出连接字符串,提交给第二层,再由第二层提交给第三层

2,在第二层中写出连接字符串,提交给第三层

准确的三层架构应该是1还是2啊?


2楼你看明白我的意思了吗?
...全文
1429 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
newkakarott 2011-06-16
  • 打赏
  • 举报
回复
真是纠结的一群家伙, 你自己试一试写在配置文件里面啊。
或者不想的话就写在DBHelper类里面 最好声明 public static 这样的话 也是很安全的
fwacky 2011-06-16
  • 打赏
  • 举报
回复
一般所有的连接字符串都 Web.config中.
iaiyanan 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 remember_me 的回复:]

引用 4 楼 kingdom_0 的回复:
你不应该这样叫三层,第一层第二层第三层……
展现层,业务逻辑曾,实体层


应该是表示层 业务逻辑层 数据访问层

实体层是作为数据载体,起到在各层之间传递数据的作用。
[/Quote]

yes,数据实体不应该叫一个层吧,我认为是一个类库.其它各层都可以引用其中的无关逻辑的数据类.
iaiyanan 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lht80053623 的回复:]

引用 3 楼 tidalmelon 的回复:
既然是三层架构那么,有关访问数据库的都该在DAL层啊,连接字符串显然是数据层的东东,写在DAL。


谢谢楼上三位,但是三位有没有想到啊,如果我写到了数据层上,假如日后程序在使用中,数据库改名字了,或者主机ip变了,那我要修改源代码 啊

我自己认为应该写在第一层,因为写在第二层和第三层中都会有这样的问题,但是我就是不知道写在第一层是不是……
[/Quote]

一般写在app.config中,然后在DAL层中使用ConfigurationManager读取出来,如果数据库配置发生变化,直接修改app.config就ok
凋零的老树 2011-06-16
  • 打赏
  • 举报
回复
看了半天,有点鸡同鸭讲。

这样的帖子也顶到了首页,看来CSDN的编辑也是个半桶水
wangyan9110 2011-06-16
  • 打赏
  • 举报
回复
写在配置文件里App.config中
lakerfairer 2011-06-16
  • 打赏
  • 举报
回复
web.config里面,妥妥的,无论数据库服务器ip变成什么都没问题
wjhgzx 2011-06-16
  • 打赏
  • 举报
回复
一般写在web.config或者App.config中。
zhangjin1222 2011-06-16
  • 打赏
  • 举报
回复
层只是逻辑上分的,为了方便维护,一半分为UI,BLL,DAL,但是根据项目需要也有用N层的。但是一般的小项目用不同的文件夹分开即可,文件夹中添加cs文件。如果大的项目一般是建成独立的项目。不过这样维护是方便了,但是速度稍微减弱了。至于连接字符串的放置为题。winform程序可以放置ini文件中,也可以xml配置文件中。至于访问一般在dal中进行访问,但是想在其他地方访问也可以。关键是开发人员的爱好和习惯了。
理不完的逻辑 2011-06-16
  • 打赏
  • 举报
回复
--Model 不用说了
——DAL
————BLL 这些用动软生成器生成
——————Common 里面放SQLHelper
————————Web 链接方法
webconfig

<connectionStrings>
<add name="AppConnectionString" connectionString="Data Source=.;Initial Catalog=OA;integrated security=sspi"/>
</connectionStrings>
chuanqi_yu 2011-06-16
  • 打赏
  • 举报
回复
三层模式连接字符串一般都写在数据访问层DAL中
舒克是我 2011-06-16
  • 打赏
  • 举报
回复
写config里(没有悬念吧……)
johnpaulus 2011-06-16
  • 打赏
  • 举报
回复
连接字符串可以在表示层中建一个App.conf文件,在这个文件中些链接字符串;然后再数据层中调用!
sugarbelle 2011-06-16
  • 打赏
  • 举报
回复
数据 连接.数据读写.当然在数据层了...

表示层不能访问数据层的所有东西.

表示层通过逻辑层才能访问数据层.

数据层只和逻辑层打交道.
表示层只和逻辑层打交道.
LovePurple 2011-06-16
  • 打赏
  • 举报
回复
写到Web.config 里呗
zhanzhaoyumao 2011-06-16
  • 打赏
  • 举报
回复
字符串应该是可以配置的,应该放到配置文件里边。然后在数据层写一个工具类读取连接字符串。
realzsy 2011-06-15
  • 打赏
  • 举报
回复
主要是看你是在哪里读配置文件的呀~ 字符串不都是配在WebConfig里面的么。。。
love_beibei 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tidalmelon 的回复:]

既然是三层架构那么,有关访问数据库的都该在DAL层啊,连接字符串显然是数据层的东东,写在DAL。
[/Quote]

中国3的意思实际上是多的意思,

大项目中层说实际上远远大于3层
云水千寻 2011-06-15
  • 打赏
  • 举报
回复
借此帖问下,假如你的程序使用了三层架构,应用程序使用了相关的配置文件(例如Web.config)是属于哪一个层呢?
sunhuaiwei 2011-06-15
  • 打赏
  • 举报
回复
上面回答的差不多了,我就顶一下
加载更多回复(50)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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