想把DAL和BLL从项目里移出来做个类库。把DAL和BLL都独立成项目,以便同一方案可以共用。
问题是 DAL用的是通过代码生成工具自动化生成的可视化的XSD强类型dataset,数据连接字符串是web.config里的。移出去后哪里可以改数据连接。
解决方法
一般情况下,如果使用类型化数据集,在网站项目中,用到的连接字符串是保存在webconfig中的
但是如果作为单独项目的话
却是存储在Properties目录的Settings.settings内部的
展开Settings.settings可以发现有一个Settings.Designer.cs文件
格式如下
-
C# code
-
[ global ::System.Configuration.ApplicationScopedSettingAttribute()] [ global ::System.Diagnostics.DebuggerNonUserCodeAttribute()] [ global ::System.Configuration.SpecialSettingAttribute( global ::System.Configuration.SpecialSetting.ConnectionString)] [ global ::System.Configuration.DefaultSettingValueAttribute( " Data Source=127.0.0.1;Initial Catalog=ZKBS;User ID=sa;pwd=123 " )] public string ZKBSConnectionString { get { return (( string )( this [ " ZKBSConnectionString " ])); } }
要把强类型数据集作为单独的DAL,肯定连接字符串不能写死在程序集内部啊,想继续放到web.config中怎么办?
按照如下步骤:
1.在项目根目录下,新建一个Settings.settings.cs,拷贝Settings.Designer.cs的内容进来,并保存
2.把相关连接字符串部分改为如下这般
-
C# code
-
public string ZKBSConnectionString { get { // return ((string)(this["ZKBSConnectionString"])); return System.Configuration.ConfigurationManager.AppSettings[ " ZKBSConnectionString " ]; } }
3.保存
4.把Properties目录的Settings.settings直接设置为"从项目中排除",不要删除,后面还有用处
这样,运行的时候就是从web.config中读取连接字符串了
需要注意的问题:
在强类型数据集设计过程中,是需要改变xsd文件还有Settings.settings相关设置的
这个时候如果Settings.settings还是处于"从项目中排除"状态的话,可能会出问题的...
所以需要将Settings.settings设置为"包含在项目中"
另外在xsd文件中,也保存着连接字符串设置,不过是指向程序集相关属性的,也就是我们上面改的地方,这里如果没有问题,最好不要手动改动,万一错了...(不过这个地方可能有挖掘的余地)
总结:
开发DAL程序集过程中,因为需要频繁变动,所以可以不用管什么连接字符串
发布的时候,执行步骤1,2,3,4
如果以后又要改动,先把Settings.settings包含进来