www.pudn.com > MyDM1.rar > Database.cs


using System; 
using System.ComponentModel; 
using System.Collections; 
using System.Diagnostics; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 
 
namespace MyDM1 
{ 
	///  
	/// Database 的摘要说明。 
	///  
	public class Database : IDisposable  
	{ 
		public Database(){} 
         
		private SqlConnection con; 
		 
		private void Open()  
		{if (con == null)  
			{con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);}				 
		 if(con.State ==System.Data.ConnectionState.Closed)	con.Open(); 
		} 
 
		 
		public void Close()  
		{if (con != null)con.Close();} 
 
		 
		public void Dispose()  
		{ 
			if (con != null) {con.Dispose();	con = null;	}				 
		} 
 
		 
		private SqlCommand CreateCommand(string procName, SqlParameter[] prams)  
		{ 
			Open(); 
			SqlCommand cmd = new SqlCommand(procName, con); 
			cmd.CommandType = CommandType.StoredProcedure; 
			// 依次把参数传入存储过程 
			if (prams != null)  
			{ 
				foreach (SqlParameter parameter in prams) 
					cmd.Parameters.Add(parameter); 
			} 
			 
			// 加入返回参数 
			cmd.Parameters.Add( 
				new SqlParameter("ReturnValue", SqlDbType.Int, 4, 
				ParameterDirection.ReturnValue, false, 0, 0, 
				string.Empty, DataRowVersion.Default, null)); 
 
			return cmd; 
		} 
 
		 
		public void RunProc(string procName, out SqlDataReader dataReader)  
		{ 
			SqlCommand cmd = CreateCommand(procName, null); 
			dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); 
		} 
	 
		#region 将DataReader 转为 DataTable 
		///  
		/// 将DataReader 转为 DataTable 
		///  
		/// DataReader 
		public    DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader) 
		{ 
			DataSet ds=new DataSet(); 
			DataTable datatable = new DataTable(); 
			DataTable schemaTable = dataReader.GetSchemaTable(); 
			//动态添加列 
			try 
			{ 
			 
				foreach(DataRow myRow in schemaTable.Rows) 
				{ 
					DataColumn myDataColumn = new DataColumn(); 
					myDataColumn.DataType	= myRow.GetType(); 
					myDataColumn.ColumnName = myRow[0].ToString(); 
					datatable.Columns.Add(myDataColumn); 
				} 
				//添加数据 
				while(dataReader.Read()) 
				{ 
					DataRow myDataRow = datatable.NewRow(); 
					for(int i=0;i