连接字符串到底哪个有效?一个小的测试
2008-03-24 19:46
288 查看
之前我曾经发帖子询问过这个问题,发完帖子后自己测试了一下,得出了答案,但是最近项目组又有人提出这个问题,有点怀疑自己当初的测试代码。重新测试一下
项目中,给一个解决方案分层,在解决方案下,把数据库持久层(Persistence)作为一个项目。
在Persistence层中创建强类型的Adapter,会自动创建一个数据库的连结字符串,自动存放在app.config里面和setting.settings里面(貌似两个文件的连结字符串是关联的,改一个另外一个自动修改)
下面是问题出来了:
数据库连接字符串放在Persistence层:如果编译以后成Persistence.DLL则没有办法在运行的时候修改数据库连接了。 这样设计的话,我怎么样把连结字符串改在WEB.config里面以便运行时修改修改?NHIBERNATE可以自动调用运行域的配置文件,强类型构建的Dataset可以吗?
2、在测试项目Util层新建QueryPrductsAdpter.xsd数据库操作强类型。新建一个数据库连接NorthwindConnectionString。操作过程会在Util/App.Config中添加
<add name="Util.Properties.Settings.NorthwindConnectionString"
connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient" />
新增加一个一个TableAdpater,取得Products表中的所有数据。命名为GetData();
3、在Web层添加测试页面,页面添加GridView1。
填写代码
protected void Page_Load(object sender, EventArgs e)
...{
ProductsTableAdapter pAdpter = new ProductsTableAdapter();
GridView1.DataSource = pAdpter.GetData();
GridView1.DataBind();
}
4、运行,结果如图
5、在Web.config里面添加
<add name="Util.Properties.Settings.NorthwindConnectionString"
connectionString="Data Source=localhost;Initial Catalog=pubs;Integrated Security=True"
providerName="System.Data.SqlClient" />
名字一样,但是连接数据库变成了Pubs。
6、运行结果如图
显然,Web.Config的数据库连接字符串替代了App.Config里的。
7、更改Web.Config的名字,结果又是步骤4的图
问题:
项目中,给一个解决方案分层,在解决方案下,把数据库持久层(Persistence)作为一个项目。在Persistence层中创建强类型的Adapter,会自动创建一个数据库的连结字符串,自动存放在app.config里面和setting.settings里面(貌似两个文件的连结字符串是关联的,改一个另外一个自动修改)
下面是问题出来了:
数据库连接字符串放在Persistence层:如果编译以后成Persistence.DLL则没有办法在运行的时候修改数据库连接了。 这样设计的话,我怎么样把连结字符串改在WEB.config里面以便运行时修改修改?NHIBERNATE可以自动调用运行域的配置文件,强类型构建的Dataset可以吗?
测试过程
1、数据准备:把本机Sqlserver中Northwind数据库Products表复制到 Pubs数据库中。用Update语句更新Pubs.Products表中ProductName都更改为"npubs"。2、在测试项目Util层新建QueryPrductsAdpter.xsd数据库操作强类型。新建一个数据库连接NorthwindConnectionString。操作过程会在Util/App.Config中添加
<add name="Util.Properties.Settings.NorthwindConnectionString"
connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient" />
新增加一个一个TableAdpater,取得Products表中的所有数据。命名为GetData();
3、在Web层添加测试页面,页面添加GridView1。
填写代码
protected void Page_Load(object sender, EventArgs e)
...{
ProductsTableAdapter pAdpter = new ProductsTableAdapter();
GridView1.DataSource = pAdpter.GetData();
GridView1.DataBind();
}
4、运行,结果如图
5、在Web.config里面添加
<add name="Util.Properties.Settings.NorthwindConnectionString"
connectionString="Data Source=localhost;Initial Catalog=pubs;Integrated Security=True"
providerName="System.Data.SqlClient" />
名字一样,但是连接数据库变成了Pubs。
6、运行结果如图
显然,Web.Config的数据库连接字符串替代了App.Config里的。
7、更改Web.Config的名字,结果又是步骤4的图
结论:
如果在WEB.Config里面有Persistence层App.config同样名字的的connectString,则按照web.config里面的来,如果没有,则按照ADO的app.config来.
相关文章推荐
- diocp3-服务器的连接上限是到底是多少?diocp3的一个装13测试(8W连接数)
- 如何创建一个有效的连接字符串
- 如何快速测试与数据库的连接并得到连接字符串
- 测试连接失败,因为初始化提供程序试发生错误。发生了一个ORACLE错误,但无法从ORACLE中检索错误信息
- 使用plsql远程连接oracle服务器(11g测试有效)
- 一个日期类的实现和测试(1900-2100年有效)
- 第十五周 写一个函数,将两个字符串连接
- 推荐一个非常棒的连接字符串大全的国外网站!
- sql server 把多行合并一行,并连接成一个字符串
- python 测试时一个str是不是字符串
- C++ - 给出一个函数来连接两个字符串A和B,其中字符串A的后几个字节和字符串B的前几个字节重叠
- 谁测试过sharepoint中的一个list到底能够容纳多少资料
- Web前端 测试数据接口url,如何post一个XML字符串,点击保存就可以保存到数据库
- 提供一个专业提供连接字符串的网站
- 一个字符串拷贝的百万次测试
- 如何测试一个SQL Server ODBC驱动程序连接使用的是5
- 俄罗斯军队的一个心理潜意识测试图 看看你属于哪个
- 001_003 Python 测试一个对象是否是类字符串
- mysql中如何更新一个字段的值为它本身的值连接上一个字符串
- 一个字符串为空时再去连接另一个字符(串)