公共配置底层代码

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;}
}
}
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus