using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
using System.Collections;
namespace DataLibrary
{
///
1<summary>
2/// 配置底层
3/// </summary>
public class ConfigManagerKeyValue
{
private string pstrKey;
private object pobjValue;
///
1<summary>
2/// 配置管理键值
3/// </summary>
///
1<param name="Key"/>
///
1<param name="Value"/>
public ConfigManagerKeyValue(string Key,object Value)
{
pstrKey = Key;
pobjValue = Value;
}
///
1<summary>
2/// 键
3/// </summary>
public string Key
{
get{return pstrKey;}
set{pstrKey=value;}
}
///
1<summary>
2/// 值
3/// </summary>
public object Value
{
get{return pobjValue;}
set{pobjValue=value;}
}
}
///
1<summary>
2/// 配置管理业务
3/// </summary>
public class DisposalConductService
{
private string pstrFilename;
private DataSet dsDataSet;
private DataView dvDataView;
///
1<summary>
2/// 配置管理业务
3/// </summary>
///
1<param name="Filename"/>
public DisposalConductService(string Filename)
{
pstrFilename = Filename;
initObjects();
}
///
1<summary>
2/// 配置管理业务
3/// </summary>
public DisposalConductService()
{
pstrFilename = System.Reflection.Assembly.GetExecutingAssembly().ToString() + ".exe.config";
AppDomain Ad = AppDomain.CurrentDomain;
pstrFilename = Ad.BaseDirectory + pstrFilename;
initObjects();
}
private void initObjects()
{
initDataSource();
}
private void initDataSource()
{
dsDataSet = new DataSet();
try
{
dsDataSet.ReadXml(pstrFilename);
dvDataView = dsDataSet.Tables[0].DefaultView;
dvDataView.AllowEdit = true;
dvDataView.AllowDelete = true;
dvDataView.AllowNew = true;
}
catch(Exception)
{
dsDataSet.Tables.Add(createDataTable() );
dsDataSet.DataSetName = "Application";
try
{
saveData();
dvDataView = dsDataSet.Tables[0].DefaultView;
dvDataView.AllowEdit = true;
dvDataView.AllowDelete = true;
dvDataView.AllowNew = true;
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
}
///
1<summary>
2/// 取得数据值
3/// </summary>
///
1<param name="KeyName"/>
键名
///
1<param name="Default"/>
默认值
///
1<returns>值</returns>
public object GetValue(string KeyName,object Default)
{
object strResult=Default;
DataRowView Row;
dvDataView.RowFilter="key='" + KeyName + "'";
if(dvDataView.Count != 0)
{
Row = dvDataView[0];
strResult = Row["value"];
}
else
{
AddValue(KeyName,Default);
}
return(strResult);
}
///
1<summary>
2/// 取得值
3/// </summary>
///
1<returns>值</returns>
public ArrayList GetValues()
{
ArrayList List = new ArrayList();
try
{
dvDataView.RowFilter="";
foreach(DataRowView Row in dvDataView)
{
List.Add(new ConfigManagerKeyValue((string)Row["key"],Row["value"]));
}
}
catch{}
return List;
}
///
1<summary>
2/// 增加一个值
3/// </summary>
///
1<param name="KeyName"/>
键
///
1<param name="Value"/>
值
///
1<returns>成功:true;失败:false</returns>
public bool AddValue(string KeyName,object Value)
{
DataRowView Row;
try
{
dvDataView.RowFilter="key='" + KeyName + "'";
if(dvDataView.Count==0)
{
Row = dvDataView.AddNew();
Row["key"] = KeyName;
Row["value"] = Value;
Row.EndEdit();
saveData();
return true;
}
else
{
return false;
}
}
catch(Exception e)
{
MessageBox.Show(e.Message);
return false;
}
}
///
1<summary>
2/// 删除一个值
3/// </summary>
///
1<param name="KeyName"/>
键
///
1<returns>成功:true;失败:false</returns>
public bool RemoveValue(string KeyName)
{
DataRowView Row;
dvDataView.RowFilter="key='" + KeyName + "'";
if(dvDataView.Count != 0)
{
Row = dvDataView[0];
Row.Delete();
return true;
}
else
{
return false;
}
}
///
1<summary>
2/// 更新值
3/// </summary>
///
1<param name="KeyName"/>
键
///
1<param name="Value"/>
值
///
1<returns>成功:true;失败:false</returns>
public bool UpdateValue(string KeyName,object Value)
{
RemoveValue(KeyName);
return AddValue(KeyName,Value);
}
private void saveData()
{
dsDataSet.WriteXml(pstrFilename);
}
private DataTable createDataTable()
{
DataTable tbl = new DataTable();
tbl.TableName = "Configuration";
tbl.Columns.Add("key",typeof(string));
tbl.Columns.Add("value",typeof(string));
return(tbl);
}
///
1<summary>
2/// 文件名
3/// </summary>
public string Filename
{
get{return pstrFilename;}
}
}
}