eventdb.cs

来自「c# 基于windows mobile 访问基站信息源程序」· CS 代码 · 共 103 行

CS
103
字号
using System;
using System.Data;
using System.IO;
using System.Reflection;

using NiceTracker.Libraries;

namespace NiceTracker.Events
{
	/// <summary>
	/// Summary description for EventDB.
	/// </summary>
	public class EventDB
	{
		private const string filename = "events.xml";

		private DataSet dsData = new DataSet( "data" );
		private DataTable dtEvents = null;	

		public EventDB()
		{

		}

		public void Load()
		{			
			string fullFilename = MiscLib.ToFilename( DBPath, filename );

			if ( !File.Exists( fullFilename ) )
			{			
				dtEvents = setupEventDB( dsData );

				dsData.WriteXml( fullFilename );
			}
			else
			{
				dsData.ReadXml( fullFilename );
				
				dtEvents = setupEventDB( dsData );				
			}
		}

		
		public void Save()
		{
			string fullFilename = MiscLib.ToFilename( DBPath, filename );

			dsData.WriteXml( fullFilename );
		}

		private DataTable setupEventDB( DataSet ds )
		{
			DataTable dt = null;
			
			if ( ds.Tables.Contains( "events" ) )
				dt = ds.Tables[ "events" ];
			else
			{
				dt = new DataTable( "events" );
				ds.Tables.Add( dt );
			}

			if ( !dt.Columns.Contains( "type" ) )
				dt.Columns.Add( "type", typeof( string ) );
			if ( !dt.Columns.Contains( "config" ) )
				dt.Columns.Add( "config", typeof( string ) );

			return dt;
		}

		public void Clear()
		{
			dtEvents.BeginLoadData();
			dtEvents.Clear();
			dtEvents.EndLoadData();
		}

		public void AddNewEvent( string type, string config )
		{			
			DataRow dr = dtEvents.NewRow();
			dr[ "type" ] = type;
			dr[ "config" ] = config;
			dtEvents.Rows.Add( dr );
		}

		public DataTable DTEvents
		{
			get
			{
				return dtEvents;
			}
		}

		public static string DBPath
		{
			get
			{
				return Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?