⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 accountdb.cs

📁 ASP C#代码实例 适合初学人士学习使用
💻 CS
字号:
using System;
using System.Data;
using System.Xml;
using System.Collections;
using System.Text;
using System.Security;
using System.Security.Cryptography;
using System.Configuration;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Example_11_2
{
	/// <summary>
	/// Summary description for AccountDB.
	/// </summary>
	public class AccountDB
	{
		private static String _accountFile;
		public String AccountFile
		{
			get
			{
				return(_accountFile);
			}
			set
			{
				_accountFile = value;
			}
		}

		public int AddAccount(String sTitle,String sMoney,String sOtherInfo,
			String dPubdate,String nUserID,String sAccountType)
		{
			int nAccountID = 0;			
			
			try
			{
				XmlDocument accountDoc = new XmlDocument();
				accountDoc.Load(AccountFile);

				XmlNode node = accountDoc.SelectSingleNode("/Accounts");
			
				if(node != null)
				{
					///取到AccountID的值,并构造新节点的AccountID值
					XmlNode lastNode = node.LastChild;
					nAccountID = Int32.Parse(lastNode.Attributes["AccountID"].Value) + 1;
				}
				else
				{
					nAccountID = 1;
				}

				///创建新的帐户节点
				XmlNode childNode = accountDoc.CreateNode(XmlNodeType.Element,"Account",null);

				///添加节点的属性及其值
				AddNodeAttribute(accountDoc,childNode,"AccountID",nAccountID.ToString());
				AddNodeAttribute(accountDoc,childNode,"Title",sTitle);
				AddNodeAttribute(accountDoc,childNode,"Money",sMoney);
				AddNodeAttribute(accountDoc,childNode,"CreateDate",DateTime.Now.ToString());		
				AddNodeAttribute(accountDoc,childNode,"Pubdate",dPubdate.ToString());
				AddNodeAttribute(accountDoc,childNode,"OtherInfo",sOtherInfo);
				AddNodeAttribute(accountDoc,childNode,"UserID",nUserID.ToString());
				AddNodeAttribute(accountDoc,childNode,"AccountType",sAccountType);

				///添加帐户节点
				node.AppendChild(childNode);

				///保存文档并修改文档
				accountDoc.Save(AccountFile);
			}
			catch(Exception ex)
			{
				throw new Exception("访问系统数据错误!!!",ex);
			}
			return(nAccountID);
		}

		private void AddNodeAttribute(XmlDocument xmlDoc,XmlNode parentNode,String sAttributeName,String sAttributeValue)
		{
			XmlAttribute attribute = xmlDoc.CreateAttribute(sAttributeName,null);
			attribute.Value = sAttributeValue;
			parentNode.Attributes.Append(attribute);
		}

		public DataView GetAccountsFromXml(int nUserID)
		{
			DataTable dataTable = new DataTable("Account");
			dataTable.Columns.Add("Title");
			dataTable.Columns.Add("Money",typeof(Decimal));
			dataTable.Columns.Add("Pubdate",typeof(DateTime));
			dataTable.Columns.Add("OtherInfo");
			dataTable.Columns.Add("AccountType");
			
			try
			{
				SymmetricMethodData symmetric = new SymmetricMethodData();
				XmlDocument accountDoc = new XmlDocument();
				accountDoc.Load(AccountFile);

				XmlNodeList nodeList = accountDoc.SelectNodes("/Accounts/Account[@UserID=" + nUserID.ToString() + "]");
				
				int index = 0;
				foreach(XmlNode node in nodeList)
				{
					DataRow row = dataTable.NewRow();
					row["Title"] = symmetric.DecryptoData(node.Attributes["Title"].Value);
					row["Money"] = Convert.ToDecimal(symmetric.DecryptoData(node.Attributes["Money"].Value));					
					row["Pubdate"] = Convert.ToDateTime(node.Attributes["Pubdate"].Value);
					row["OtherInfo"] = symmetric.DecryptoData(node.Attributes["OtherInfo"].Value);
					row["AccountType"] = symmetric.DecryptoData(node.Attributes["AccountType"].Value);
					dataTable.Rows.Add(row);
					if(++index > 10)break;
				}
			}
			catch(Exception ex)
			{
				throw new Exception("访问系统数据错误!!!",ex);
			}

			DataView dataView = new DataView(dataTable);
			dataView.AllowNew = true;
			dataView.AllowEdit = true;
			dataView.Sort = "Pubdate DESC";
			return(dataView);
		}

		public static TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); 

		public static String AccountOutType()
		{
			SymmetricMethodData sym = new SymmetricMethodData();
			return(sym.EncryptoData("支出"));
		}

		public static String AccountInType()
		{
			SymmetricMethodData sym = new SymmetricMethodData();
			return(sym.EncryptoData("收入"));
		}

		/// <summary>
		/// 加密函数
		/// </summary>
		public static String EncryptString(string thisEncode)
		{
			string encrypted;
			byte[] Code = ASCIIEncoding.ASCII.GetBytes(thisEncode);
        
			encrypted = Convert.ToBase64String(
				des.CreateEncryptor().TransformFinalBlock(Code, 0, 
				Code.Length)
				);
        
			return encrypted;
		}

		/// <summary>
		/// 解密函数
		/// </summary>
		public static String DecryptString(string thisDecode)
		{
			string decrypted;
			byte[] Code = Convert.FromBase64String(thisDecode);
        
			decrypted = ASCIIEncoding.ASCII.GetString(
				des.CreateDecryptor().TransformFinalBlock(Code, 0, 
				Code.Length)
				);

			return decrypted;
		}
	}
}

⌨️ 快捷键说明

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