都问了很多的问题:c#2005中如何让用户在程序中设置“设置文件”也就是.settings的文件 思路:在设计程序时新加一个“设置文件”在时面放一个数据库连接字符串,程序里所有连接字符串都用这个字符串。这样在程序里设计是很方面的,但我花了两天时间也没有找到怎么让用户修改这个设置文件的方法,请各位老大帮忙想想办法。或者有取代的方法也行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对如把访问级放到Application的话,那么通过现成的方法,没有办法,刚接触2005时我也遇到了和你一样的问题,但后来看MSDN说了,这是做不到的,而且你就算Save了,甚至不给保存时的出错消息系统都不会提供,不过,也可自己改App.Config文件,不过不知道这个文件工作时,框架会不会采取这某种措施,所以我也没去试验在程序运行时动态改App.Config是不是有什么问题,所以用.Net快5年了,我一直用注册表保存设置信息,属于全局的,就放在LocalMachine中,属于用户的,放到User中,感觉这样还是方便些 如果安全性要求不高的,应该可以通过XML文件进行存储和读取。 用App.config文件就可以完成楼主所需要的功能在App.config中添加如下字段<appSettings> <!-- 映射的数据库连接字符串 --> <add key="MappingConnectionString" value="Server=127.0.0.1;User ID=sa;Password=;Initial Catalog=YHong_2006"/> </appSettings >在程序中可以如下调用:private string connectionString = ConfigurationSettings.AppSettings["MappingConnectionString"]; 看来只有用XML文件或注册表或ini文件等老办法解决新问题了。 那就不用app.config,自己定义一个配置类,然后序列化成xml保存,使用的时候再反序列化回来,我现在就是这么做的,超级方便 在一个安装部署的文档中有修改web.config方法,你可以参考一下!网站安装好后,需要设置web.config文件,这里只涉及到连接字符串到设置,其他的可以同理修改。 #region WriteWebConfig 修改web.config的连接数据库的字符串 private bool WriteWebConfig() { System.IO.FileInfo FileInfo = new System.IO.FileInfo(this.Context.Parameters["targetdir"] + "/web.config"); if (!FileInfo.Exists) { throw new InstallException("Missing config file :" + this.Context.Parameters["targetdir"] + "/web.config"); } System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument(); xmlDocument.Load(FileInfo.FullName); bool FoundIt = false; foreach (System.Xml.XmlNode Node in xmlDocument["configuration"]["appSettings"]) { if (Node.Name == "add") { if (Node.Attributes.GetNamedItem("key").Value == "ConnectionString") { Node.Attributes.GetNamedItem("value").Value = String.Format("Persist Security Info=False;Data Source={0};database={1};User ID={2};Password={3};Packet Size=4096;Pooling=true;Max Pool Size=100;Min Pool Size=1", ServerName, DBName, AdminName, AdminPwd); FoundIt = true; } } } if (!FoundIt) { throw new InstallException("Error when writing the config file: web.config"); } xmlDocument.Save(FileInfo.FullName); return FoundIt; } #endregion 05中完全可以用XXX.exe.config文件保存你的接续信息可以自己制作工具进行修改。应针对XXX.exe.config进行处理。而不是App.config我在现在的项目中就负责这个模块,还有相应工具的制作。所以说完全可以阿并且要把接续信息加密。 ADO部分重写,来和你的接续信息完全吻合。并自适应数据库类型。你读出接续信息后放到自己项目的参量中ADO层直接读取它。这样就连结起来了。不知道大家公司的框架都是什么套路。能介绍下吗??? 我目前的想法就是和mikebai(麦克白)一样的,自己写个更改XXX.exe.config的工具,这样对于单个程序来说是很方便的,但对于一个电脑上安装几个自己公司的程序,这种做法是不好的,你不会让客户改完一个XXX.exe.config配置文件还要去改另外几个配置文件吧,那不累死才怪,目前做软件一般都不会只做一个程序,给一家企业做肯定是好多个程序,这样大家能接受的也就会只有一个公用的配置文件,比如医院his里网管员电脑里的HIS可能会有20-30个程序这么多,像刚才的改XXX.exe.config就得改20-30个,网管只会说一句话:“吾命休也”。 晕了。配置文件有那么多要改的?MS的 Enterprise Library Configuration也就是这么做的。再说既然N个配置文件要改,他们之间没有联系?那就要看你设计的时候怎么样提高效率了。呵呵。你文件多了。还想就一个配置文件。还说有那么多段信息要存。还想点几下就可以了?晕。有啥好的方法记得一定要告诉我啊。。 做数据库应用程序,数据库连接是一个最基本的东西,但也是最重要的一个东西:1:公用性:公司所有数据库产品都要能获取同一个连接字符串。2:安全性(相对安全):不能让用户轻易知道连接字符串的内容。3:简单性:对于程序设置时要很简单的访问,一般要求在程序里可视化设计,比如:在程序里通过工具栏里拖一个SqlConnection 他的ConnectionString要能在属性里直接选,而不是通过代码来访问,因为代码里要获取任何值都是轻而易举的。新手学.net,请勿见笑,各位老大帮帮忙,提供一些思路。 安装服务出错 winform导出Excel 如何获取文件名及文件大小(不下载该文件) 新手请教,textBox 与 dataGrid 的数据同步 C#程序在不同的操作系统中的问题,大家救小妹一命啊,在外地出差回不去了呢!! 【入门】c#中的多层继承顺序和java的不一样,怎样才能一样? 如何定义友元函数 WinForm开发 IU设计工具 c#难啊,想请教一道难到我既题目 如何将DataGrid中的记录打印出来? 统计一下现在各位都用什么做报表(不用rmb买的)? 求助!关于RSA算法
在App.config中添加如下字段
<appSettings>
<!-- 映射的数据库连接字符串 -->
<add key="MappingConnectionString" value="Server=127.0.0.1;User ID=sa;Password=;Initial Catalog=YHong_2006"/>
</appSettings >
在程序中可以如下调用:
private string connectionString = ConfigurationSettings.AppSettings["MappingConnectionString"];
#region WriteWebConfig 修改web.config的连接数据库的字符串
private bool WriteWebConfig()
{
System.IO.FileInfo FileInfo = new System.IO.FileInfo(this.Context.Parameters["targetdir"] + "/web.config");
if (!FileInfo.Exists)
{
throw new InstallException("Missing config file :" + this.Context.Parameters["targetdir"] + "/web.config");
}
System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument();
xmlDocument.Load(FileInfo.FullName);
bool FoundIt = false;
foreach (System.Xml.XmlNode Node in xmlDocument["configuration"]["appSettings"])
{
if (Node.Name == "add")
{
if (Node.Attributes.GetNamedItem("key").Value == "ConnectionString")
{
Node.Attributes.GetNamedItem("value").Value = String.Format("Persist Security Info=False;Data Source={0};database={1};User ID={2};Password={3};Packet Size=4096;Pooling=true;Max Pool Size=100;Min Pool Size=1", ServerName, DBName, AdminName, AdminPwd);
FoundIt = true;
}
}
}
if (!FoundIt)
{
throw new InstallException("Error when writing the config file: web.config");
}
xmlDocument.Save(FileInfo.FullName);
return FoundIt;
}
#endregion
可以自己制作工具进行修改。应针对XXX.exe.config进行处理。而不是App.config
我在现在的项目中就负责这个模块,还有相应工具的制作。所以说完全可以阿
并且要把接续信息加密。
你读出接续信息后放到自己项目的参量中
ADO层直接读取它。这样就连结起来了。不知道大家公司的框架都是什么套路。能介绍下吗???
MS的 Enterprise Library Configuration也就是这么做的。
再说既然N个配置文件要改,他们之间没有联系?
那就要看你设计的时候怎么样提高效率了。
呵呵。
你文件多了。还想就一个配置文件。还说有那么多段信息要存。还想点几下就可以了?
晕。
有啥好的方法记得一定要告诉我啊。。
1:公用性:公司所有数据库产品都要能获取同一个连接字符串。
2:安全性(相对安全):不能让用户轻易知道连接字符串的内容。
3:简单性:对于程序设置时要很简单的访问,一般要求在程序里可视化设计,比如:在程序里通过工具栏里拖一个SqlConnection 他的ConnectionString要能在属性里直接选,而不是通过代码来访问,因为代码里要获取任何值都是轻而易举的。
新手学.net,请勿见笑,各位老大帮帮忙,提供一些思路。