日期:2012-04-18  浏览次数:20767 次

我对这个类不是很满意,如果你有改进意见请联系我,不胜感激.

主要将对数据库的操作简单封装了一下

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Configuration;
using System.Data.SqlClient;

namespace Addr.Admin.ExecuteSqlCommand
{
?///
?/// ExecuteCommand 的摘要说明:数据处理层。
?///
?public class ExecuteCommand
?{
??string cnStr;
??string errorMessage="";
??bool successful=true;
??//构造函数将连接字符串赋给变量
??public ExecuteCommand()
??{
???//
???// TODO: 在此处添加构造函数逻辑
???//
???cnStr=ConfigurationSettings.AppSettings["cn"];
??}
??//枚举执行sqlcommand的类型
??public enum cmdType
??{
???ExecuteNonQuery=1,
???ExecuteScalar,
???ExecuteReader,
???ExecuteDataSet,
???ExecuteID
??};
??//返回是否执行成功的属性
??public bool rlt
??{
???get
???{
????return successful;
???}
??}
??//返回错误信息
??public string msg
??{
???get
???{
????return errorMessage;
???}
??}
??//执行命令的函数
??public object Executing(SqlCommand cm,cmdType type)
??{
???SqlConnection cn;
???try
???{
????cn=new SqlConnection(cnStr);
????cn.Open();
????cm.Connection=cn;

????switch(type)
????{
?????case cmdType.ExecuteNonQuery:
??????try
??????{
???????cm.ExecuteNonQuery();
???????cn.Close();
??????}
??????catch(Exception ex)
??????{
???????errorMessage="Error executing 'ExecuteNonQuery'."+ex.Message;
???????successful=false;
??????}
??????break;
?????case cmdType.ExecuteReader:
??????try
??????{
???????SqlDataAdapter da=new SqlDataAdapter(cm.CommandText,cn);
???????DataSet ds=new DataSet();
???????da.Fill(ds,"First");
???????da.Dispose();
???????cn.Close();
???????return ds.Tables["First"];
??????}
??????catch
??????{
???????errorMessage="Error executing 'ExecuteReader'.";
???????successful=false;
??????}
??????break;
?????case cmdType.ExecuteScalar:
??????try
??????{
???????int result=(int)cm.ExecuteScalar();
???????cn.Close();
???????return result;
??????}
??????catch
??????{
???????errorMessage="Error executing 'ExecuteScalar'.'";
???????successful=false;
??????}
??????break;
?????case cmdType.ExecuteDataSet:
??????try
??????{
???????SqlDataAdapter da=new SqlDataAdapter(cm.CommandText,cn);
???????DataSet ds=new DataSet();
???????da.Fill(ds);
???????cn.Close();
???????return ds;
??????}
??????catch
??????{
???????errorMessage="Error executing 'ExecuteDataSet'.";
???????successful=false;
??????}
??????break;
?????case cmdType.ExecuteID:
??????try
??????{
???????string rst="";
???????SqlDataReader dr=cm.ExecuteReader();
???????if(dr.Read())
???????{
????????rst=dr["ID"].ToString();
???????}
???????dr.Close();
???????cn.Close();
???????return rst;
??????}
??????catch
??????{
???????errorMessage="Error executing 'ExecuteID'.";
???????successful=false;
??????}
??????break;
?????default:
??????errorMessage="Error executing unknown sqlcommand.";
??????successful=false;
??????break;
????}
????return successful;
???}
???catch
???{
????successful=false;
????errorMessage="Error opening data connection.";
????return successful;
???}
??}
?}
}