(winform)C#2008中如何写app.config文件??

wsz0812 2009-11-26 02:25:19
我用app.config 文件来做配置文件,

里面有一项是关于 流水号 的,就是在做完一个动作后,流水号就要自增 1 ,写到app.config文件中,

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>

<add name ="lsh" connectionString ="000001"/>

</connectionStrings>
</configuration>


我是这样读取的
string sLsh;

sLsh=ConfigurationManager.ConnectionStrings["lsh"].ConnectionString;

可我要怎么把自增的值写进去呢?我刚学C# ,不懂!还请大家帮忙!
例如自增后值是 "00002". 我想看看代码怎么写....
...全文
429 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzhoufeng888 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
C# code

SetConfiguration#region SetConfiguration
/**//// <summary>
/// 设置appSetting的值
/// </summary>
/// <param name="key">键</param>
/// <param name="va……
[/Quote]

学习了!
menuexit 2011-02-19
  • 打赏
  • 举报
回复
xcxzcxzc
menuexit 2011-02-19
  • 打赏
  • 举报
回复
如果app.config和System.Windows.Forms.Application.ExecutablePath不在同一个目录 怎么获得 指定的路劲呢
wsz0812 2009-11-28
  • 打赏
  • 举报
回复
也就说没办法了.........!
cuike519 2009-11-28
  • 打赏
  • 举报
回复
这个文件的读写和普通的xml文件一样。


只是在读写完之后不能马上反应到程序里面,程序下次运行的时候会重新加载配置文件。
wsz0812 2009-11-28
  • 打赏
  • 举报
回复
修改是可以修改,得在程序关闭后重启才能看修改的值。。。。。

不这样行吗?我想修改后再去获取文件中的值,就已经是修改的那个了......怎么办?
wsz0812 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
C# code
SetConfiguration#region SetConfiguration/**////<summary>/// 设置appSetting的值///</summary>///<param name="key">键</param>///<param name="value">值</param>///<param name="filePath">App.config文件路径</p?-
[/Quote]

这个实在看不出要怎么用......真是不好意思!
阿非 2009-11-27
  • 打赏
  • 举报
回复

string path = System.Windows.Forms.Application.ExecutablePath + ".config";

XmlDocument xDoc = new XmlDocument();

xDoc.Load(path);

XmlNode xNode = xDoc.SelectSingleNode("//connectionStrings");

XmlElement xElem = (XmlElement)xNode.SelectSingleNode("//add[@name='" + "lsh" + "']");

if (xElem != null)
{
xElem.Attributes["connectionString"].Value = "0000002";
//xElem.SetAttribute("connectionString", "0000002");
}


xDoc.Save(path);
wsz0812 2009-11-27
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例

appSection.Settings[key].Value = value; 这句出错
十八道胡同 2009-11-27
  • 打赏
  • 举报
回复
Configuration configuration = null; //Configuration对象
AppSettingsSection appSection = null; //AppSection对象

configuration = ConfigurationManager.OpenExeConfiguration(filePath);

//取得AppSetting节
appSection = configuration.AppSettings;//这个是读取

//赋值并保存
appSection.Settings[key].Value = value; //这个是设置新值
configuration.Save();//保存新值
wsz0812 2009-11-27
  • 打赏
  • 举报
回复
SetConfiguration("lsh", "这里写你要保存的值", ConfigurationUserLevel.None);

这样不行,第三个参数是string 的,出错!
wuyq11 2009-11-27
  • 打赏
  • 举报
回复
public void SaveConfig(string configKey,string configValue)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Clear();
config.AppSettings.Settings.Add(configKey, configValue);
config.Save();
}
public void SaveConfig(string configKey,string configValue)
{
XmlDocument doc=new XmlDocument();
doc.Load(strFileName);
XmlNodeList nodes=doc.GetElementsByTagName("add");
foreach (XmlNode node in nodes)
{
XmlElement xe = (XmlElement)node;
if (xe.GetAttribute("key") == configKey)
{
xe.SetAttribute("value", configValue);
}
}
doc.Save(strFileName);
}

public void SaveConfig(string configKey,string configValue)
{

for (int i = 0; i < nodes.Count; i++)
{
XmlAttribute att = nodes[i].Attributes["key"];
if (att.Value == "" + configKey + "")// if(att.Value == configKey)
{
att = nodes[i].Attributes["value"];
att.Value = configValue;
break;
}
}
doc.Save(strFileName);

}

public static string GetConnectionStringsConfig(string connectionName)
{
try
{
string connectionString =
ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
Console.WriteLine(connectionString);
return connectionString;
}
catch
{
return "";
}
}

public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
{
bool isModified = false;
if (ConfigurationManager.ConnectionStrings[newName] != null)
{
isModified = true;
}
ConnectionStringSettings mySettings =
new ConnectionStringSettings(newName, newConString, newProviderName);
Configuration config =
ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);//ConfigurationUserLevel.None
if (isModified)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("ConnectionStrings");
}

public static string GetAppSettings(string SettingName)
{
return ConfigurationManager.AppSettings[SettingName].ToString();
}
public static void SetAppSettings(string AppKey, string AppValue)
{
XmlDocument doc = new XmlDocument();
doc.Load(Application.ExecutablePath + ".config");
XmlNode node = doc.SelectSingleNode(@"//add[@key='" + AppKey + "']");
XmlElement ele = (XmlElement)node;
if (node != null)
ele.SetAttribute("value", AppValue);
else
{
XmlElement xElem2;
xElem2 = doc.CreateElement("add");
xElem2.SetAttribute("key", AppKey);
xElem2.SetAttribute("value", AppValue);
node.AppendChild(xElem2);
}
doc.Save(Application.ExecutablePath + ".config");
}

chengwen2402163 2009-11-27
  • 打赏
  • 举报
回复
不过他这个是操作appSettings配置节,你可以根据他那方法修改成connectionStrings配置节。
chengwen2402163 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wsz0812 的回复:]
引用 1 楼 sandy945 的回复:
C# code
SetConfiguration#region SetConfiguration/**//// <summary>/// 设置appSetting的值/// </summary>/// <param name="key">键 </param>/// <param name="value">值 </param>/// <param name="filePath">App.config文件路径 </p?-


这个实在看不出要怎么用......真是不好意思!
[/Quote]
可以如此调用1楼的方法。:
SetConfiguration("lsh", "这里写你要保存的值", ConfigurationUserLevel.None);
zhukui 2009-11-26
  • 打赏
  • 举报
回复
在VS 2008中直接用Settings,右键点击项目,“属性”/“设置”
建立自己的设置,如“lsh”,将类型改成“用户”,利用Settings.Default.lsh直接访问,可读写。
注:app.config最后变成了*.exe.config
阿非 2009-11-26
  • 打赏
  • 举报
回复

SetConfiguration#region SetConfiguration
/**//// <summary>
/// 设置appSetting的值
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="filePath">App.config文件路径</param>
public static void SetConfiguration(string key, string value,string filePath)
{
Configuration configuration = null; //Configuration对象
AppSettingsSection appSection = null; //AppSection对象

configuration = ConfigurationManager.OpenExeConfiguration(filePath);

//取得AppSetting节
appSection = configuration.AppSettings;

//赋值并保存
appSection.Settings[key].Value = value;
configuration.Save();


}
#endregion


110,561

社区成员

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

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

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