不知道以后还用不用更新~~~~
自己先记下来~~~
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Data.SqlClient;
using System.Data.SqlClient;
 using System.Collections;
using System.Collections;


 namespace CuctSoft
namespace CuctSoft
 {
{
 /// <summary>
    /// <summary>
 /// base.--数据库操作通用基类
    /// base.--数据库操作通用基类
 /// </summary>
    /// </summary>
 ///<author>
    ///<author>
 /// E-space 2007-4-22
    /// E-space 2007-4-22
 /// </author>
    /// </author> 

 public class SqlDb
    public class SqlDb
 {
    {

 #region "Fields of base calss(数据库连接字符)"
        #region "Fields of base calss(数据库连接字符)"

 /// <summary>
        /// <summary>
 /// connecting to Database
        /// connecting to Database
 /// ["personal"]--根据Web.config可更改
        /// ["personal"]--根据Web.config可更改
 /// </summary>
        /// </summary>
 public string strConn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
        public string strConn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];

 /// <summary>
        /// <summary>
 /// SQL command
        /// SQL command
 /// </summary>
        /// </summary>
 public string strSQL;
        public string strSQL;

 #endregion
        #endregion


 #region "Functions of base class(数据库操作)"
        #region "Functions of base class(数据库操作)"


 /// <summary>
        /// <summary>
 /// executing SQL commands-执行一段SQL语句
        /// executing SQL commands-执行一段SQL语句
 /// </summary>
        /// </summary>
 /// <param name="strSQL">string</param>
        /// <param name="strSQL">string</param>
 /// <returns>return int</returns>
        /// <returns>return int</returns>

 public void dbExecuteSql(string strSQL)
        public void dbExecuteSql(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);
 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 myCmd.ExecuteNonQuery();
                myCmd.ExecuteNonQuery();
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }


 /// <summary>
        /// <summary>
 ///executing SQL commands-有执行成功判断
        ///executing SQL commands-有执行成功判断
 /// </summary>
        /// </summary>
 /// <param name="strSQL">要执行的SQL语句,为字符串类型string</param>
        /// <param name="strSQL">要执行的SQL语句,为字符串类型string</param>
 /// <returns>返回执行情况,整形int</returns>
        /// <returns>返回执行情况,整形int</returns>
 public int dbExecuteSqlEx(string strSQL)
        public int dbExecuteSqlEx(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);

 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 SqlDataReader myReader = myCmd.ExecuteReader();
                SqlDataReader myReader = myCmd.ExecuteReader();
 if (myReader.Read())
                if (myReader.Read())
 {
                {
 return 0;
                    return 0;
 }
                }
 else
                else
 {
                {
 throw new Exception("Value Unavailable!");
                    throw new Exception("Value Unavailable!");
 }
                }
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }


 /// <summary>
        /// <summary>
 /// get dataset-通过输入的SQL语句得到一个数据集
        /// get dataset-通过输入的SQL语句得到一个数据集
 /// </summary>
        /// </summary>
 /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param>
 /// <returns>(DataSet)</returns>
        /// <returns>(DataSet)</returns>
 public DataSet dbExecuteSql4Ds(string strSQL)
        public DataSet dbExecuteSql4Ds(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 SqlDataAdapter sda = new SqlDataAdapter(strSQL, myCn);
                SqlDataAdapter sda = new SqlDataAdapter(strSQL, myCn);
 DataSet ds = new DataSet("ds");
                DataSet ds = new DataSet("ds");

 sda.Fill(ds);
                sda.Fill(ds);
 return ds;
                return ds;
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }


 /// <summary>
        /// <summary>
 /// get single value-返回SQL语句数据集中的第一行第一列整型
        /// get single value-返回SQL语句数据集中的第一行第一列整型
 /// </summary>
        /// </summary>
 /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param>
 /// <returns>(int)</returns>
        /// <returns>(int)</returns>
 public int dbExecuteSql4Value(string strSQL)
        public int dbExecuteSql4Value(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);
 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar();
 if (Object.Equals(r, null))
                if (Object.Equals(r, null))
 {
                {
 throw new Exception("value unavailable!");
                    throw new Exception("value unavailable!");
 }
                }
 else
                else
 {
                {
 try { int a = (int)r; }
                    try { int a = (int)r; }
 catch { return 0; }
                    catch { return 0; }
 return (int)r;
                    return (int)r;

 }
                }
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }
 /// <summary>
        /// <summary>
 /// get single value-返回SQL语句数据集中的第一行第一列整型
        /// get single value-返回SQL语句数据集中的第一行第一列整型
 /// </summary>
        /// </summary>
 /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param>
 /// <returns>(int)</returns>
        /// <returns>(int)</returns>
 public string dbExecuteSql4Values(string strSQL)
        public string dbExecuteSql4Values(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);
 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar();
 if (Object.Equals(r, null))
                if (Object.Equals(r, null))
 {
                {
 return "";
                    return "";
 }
                }
 else
                else
 {
                {
 return (string)r;
                    return (string)r;
 }
                }
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }


 public object dbExecSql4Values(string strSQL)
        public object dbExecSql4Values(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);
 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar();
 if (Object.Equals(r, null))
                if (Object.Equals(r, null))
 {
                {
 return "";
                    return "";
 }
                }
 else
                else
 {
                {
 return r;
                    return r;
 }
                }
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }

 /// <summary>
        /// <summary>
 /// get object-返回SQL语句对应的数据集的对象
        /// get object-返回SQL语句对应的数据集的对象
 /// </summary>
        /// </summary>
 /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param>
 /// <returns>(object)</returns>
        /// <returns>(object)</returns>
 public object dbExecuteSql4ValueEx(string strSQL)
        public object dbExecuteSql4ValueEx(string strSQL)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);
 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar();
 if (Object.Equals(r, null))
                if (Object.Equals(r, null))
 {
                {
 throw new Exception("object unavailable!");
                    throw new Exception("object unavailable!");
 }
                }
 else
                else
 {
                {
 return r;
                    return r;
 }
                }
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }


 /// <summary>
        /// <summary>
 /// execute multipul SQL commands -将指定数组中的N条SQL语句同步执行。
        /// execute multipul SQL commands -将指定数组中的N条SQL语句同步执行。
 /// </summary>
        /// </summary>
 /// <author>
        /// <author>
 /// e-space 2007-4-22
        /// e-space 2007-4-22
 /// </author>
        /// </author>
 /// <param name="strSQLs">string</param>
        /// <param name="strSQLs">string</param>
 /// <returns>int</returns>
        /// <returns>int</returns>
 public int dbExecuteSqls(string[] strSQLs)
        public int dbExecuteSqls(string[] strSQLs)
 {
        {
 SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn);
 SqlCommand myCmd = new SqlCommand();
            SqlCommand myCmd = new SqlCommand();
 int j = strSQLs.Length;
            int j = strSQLs.Length;

 try
            try
 {
            {
 myCn.Open();
                myCn.Open();
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 SqlTransaction myTrans = myCn.BeginTransaction();
            SqlTransaction myTrans = myCn.BeginTransaction();

 try
            try
 {
            {
 myCmd.Connection = myCn;
                myCmd.Connection = myCn;
 myCmd.Transaction = myTrans;
                myCmd.Transaction = myTrans;

 foreach (string str in strSQLs)
                foreach (string str in strSQLs)
 {
                {
 myCmd.CommandText = str;
                    myCmd.CommandText = str;
 myCmd.ExecuteNonQuery();
                    myCmd.ExecuteNonQuery();
 }
                }
 myTrans.Commit();
                myTrans.Commit();
 return 0;
                return 0;
 }
            }
 catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e)
 {
            {
 myTrans.Rollback();
                myTrans.Rollback();
 throw new Exception(e.Message);
                throw new Exception(e.Message);
 }
            }
 finally
            finally
 {
            {
 myCmd.Dispose();
                myCmd.Dispose();
 myCn.Close();
                myCn.Close();
 }
            }
 }
        }


 /// <summary>
        /// <summary>
 /// 提供一个Select的数据集,类型为SqlDataReader,不支持自动分页。
        /// 提供一个Select的数据集,类型为SqlDataReader,不支持自动分页。
 /// </summary>
        /// </summary>
 /// <author>
        /// <author>
 /// e-space  2007-4-22
        /// e-space  2007-4-22
 /// </author>
        /// </author>
 /// <param name="selectString">检索字符串</param>
        /// <param name="selectString">检索字符串</param>
 /// <returns>SqlDataReader</returns>
        /// <returns>SqlDataReader</returns>
 public SqlDataReader dbODSGetSDR(string selectString)
        public SqlDataReader dbODSGetSDR(string selectString)
 {
        {
 SqlConnection con = new SqlConnection(strConn);
            SqlConnection con = new SqlConnection(strConn);

 SqlCommand cmd = new SqlCommand(selectString, con);
            SqlCommand cmd = new SqlCommand(selectString, con);
 con.Open();
            con.Open();
 SqlDataReader dtr =
            SqlDataReader dtr =
 cmd.ExecuteReader(CommandBehavior.CloseConnection);
              cmd.ExecuteReader(CommandBehavior.CloseConnection);
 return dtr;
            return dtr;
 }
        }


 /// <summary>
        /// <summary>
 /// 为objectDataSource提供一个Select的数据集,类型为DataTable,支持自动分页。
        /// 为objectDataSource提供一个Select的数据集,类型为DataTable,支持自动分页。
 /// </summary>
        /// </summary>
 /// <author>
        /// <author>
 ///E-space 2007-4-22
        ///E-space 2007-4-22
 /// </author>
        /// </author>
 /// <param name="sqlCommand">检索字符串</param>
        /// <param name="sqlCommand">检索字符串</param>
 /// <param name="tableName">DataTable表名</param>
        /// <param name="tableName">DataTable表名</param>
 /// <returns>DataTable</returns>
        /// <returns>DataTable</returns>
 //[DataObjectMethod(DataObjectMethodType.Select, true)]
        //[DataObjectMethod(DataObjectMethodType.Select, true)]
 public DataTable dbODSGetDataTable(string sqlCommand, string tableName)
        public DataTable dbODSGetDataTable(string sqlCommand, string tableName)
 {
        {


 SqlConnection conn = new SqlConnection(strConn);
            SqlConnection conn = new SqlConnection(strConn);
 SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);
            SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);

 DataSet ds = new DataSet();
            DataSet ds = new DataSet();

 try
            try
 {
            {
 conn.Open();
                conn.Open();
 //da.Fill(ds, startRecord, maxRecords, "Employees");
                //da.Fill(ds, startRecord, maxRecords, "Employees");
 da.Fill(ds, tableName);
                da.Fill(ds, tableName);
 }
            }
 catch (SqlException e)
            catch (SqlException e)
 {
            {
 string a = e.Errors.ToString();
                string a = e.Errors.ToString();
 }
            }
 finally
            finally
 {
            {
 conn.Close();
                conn.Close();
 }
            }

 if (ds.Tables[tableName] != null)
            if (ds.Tables[tableName] != null)
 return ds.Tables[tableName];
                return ds.Tables[tableName];

 return null;
            return null;
 }
        }


 public DataTable dbODSGetDataTable(string sqlCommand)
        public DataTable dbODSGetDataTable(string sqlCommand)
 {
        {


 SqlConnection conn = new SqlConnection(strConn);
            SqlConnection conn = new SqlConnection(strConn);
 SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);
            SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);

 DataTable dt = new DataTable();
            DataTable dt = new DataTable();

 try
            try
 {
            {
 conn.Open();
                conn.Open();
 //da.Fill(ds, startRecord, maxRecords, "Employees");
                //da.Fill(ds, startRecord, maxRecords, "Employees");
 da.Fill(dt);
                da.Fill(dt);
 }
            }
 catch (SqlException e)
            catch (SqlException e)
 {
            {
 string a = e.Errors.ToString();
                string a = e.Errors.ToString();
 }
            }
 finally
            finally
 {
            {
 conn.Close();
                conn.Close();
 }
            }

 if (dt != null)
            if (dt != null)
 return dt;
                return dt;

 return null;
            return null;
 }
        }



 /// <summary>
        /// <summary>
 /// 执行存储过程,返回影响的行数
        /// 执行存储过程,返回影响的行数        
 /// </summary>
        /// </summary>
 /// <param name="storedProcName">存储过程名</param>
        /// <param name="storedProcName">存储过程名</param>
 /// <param name="parameters">存储过程参数</param>
        /// <param name="parameters">存储过程参数</param>
 /// <param name="rowsAffected">影响的行数</param>
        /// <param name="rowsAffected">影响的行数</param>
 /// <returns></returns>
        /// <returns></returns>
 public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
        public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
 {
        {
 
            
 using (SqlConnection connection = new SqlConnection(strConn))
            using (SqlConnection connection = new SqlConnection(strConn))
 {
            {
 int result;
                int result;
 connection.Open();
                connection.Open();
 SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
                SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
 rowsAffected = command.ExecuteNonQuery();
                rowsAffected = command.ExecuteNonQuery();
 result = (int)command.Parameters["ReturnValue"].Value;
                result = (int)command.Parameters["ReturnValue"].Value;
 //Connection.Close();
                //Connection.Close();
 return result;
                return result;
 }
            }
 }
        }


 /// <summary>
        /// <summary>
 /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
        /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
 /// </summary>
        /// </summary>
 /// <param name="connection">数据库连接</param>
        /// <param name="connection">数据库连接</param>
 /// <param name="storedProcName">存储过程名</param>
        /// <param name="storedProcName">存储过程名</param>
 /// <param name="parameters">存储过程参数</param>
        /// <param name="parameters">存储过程参数</param>
 /// <returns>SqlCommand</returns>
        /// <returns>SqlCommand</returns>
 private SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
        private SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
 {
        {
 SqlCommand command = new SqlCommand(storedProcName, connection);
            SqlCommand command = new SqlCommand(storedProcName, connection);
 command.CommandType = CommandType.StoredProcedure;
            command.CommandType = CommandType.StoredProcedure;
 foreach (SqlParameter parameter in parameters)
            foreach (SqlParameter parameter in parameters)
 {
            {
 if (parameter != null)
                if (parameter != null)
 {
                {
 // 检查未分配值的输出参数,将其分配以DBNull.Value.
                    // 检查未分配值的输出参数,将其分配以DBNull.Value.
 if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
 (parameter.Value == null))
                        (parameter.Value == null))
 {
                    {
 parameter.Value = DBNull.Value;
                        parameter.Value = DBNull.Value;
 }
                    }
 command.Parameters.Add(parameter);
                    command.Parameters.Add(parameter);
 }
                }
 }
            }

 return command;
            return command;
 }
        }


 /// <summary>
        /// <summary>
 /// 创建 SqlCommand 对象实例(用来返回一个整数值)
        /// 创建 SqlCommand 对象实例(用来返回一个整数值)    
 /// </summary>
        /// </summary>
 /// <param name="storedProcName">存储过程名</param>
        /// <param name="storedProcName">存储过程名</param>
 /// <param name="parameters">存储过程参数</param>
        /// <param name="parameters">存储过程参数</param>
 /// <returns>SqlCommand 对象实例</returns>
        /// <returns>SqlCommand 对象实例</returns>
 private SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
        private SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
 {
        {
 SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
            SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
 command.Parameters.Add(new SqlParameter("ReturnValue",
            command.Parameters.Add(new SqlParameter("ReturnValue",
 SqlDbType.Int, 4, ParameterDirection.ReturnValue,
                SqlDbType.Int, 4, ParameterDirection.ReturnValue,
 false, 0, 0, string.Empty, DataRowVersion.Default, null));
                false, 0, 0, string.Empty, DataRowVersion.Default, null));
 return command;
            return command;
 }
        }
 #endregion
        #endregion


 #region
        #region 
 /// <summary>
        /// <summary>
 /// 调用createCmd创建SqlDataReadere方法
        /// 调用createCmd创建SqlDataReadere方法
 /// </summary>
        /// </summary>
 /// <param name="storeName">存储过程名</param>
        /// <param name="storeName">存储过程名</param>
 /// <param name="paras">参数数组</param>
        /// <param name="paras">参数数组</param>

 public void ExecStore(string storeName, params SqlParameter[] paras)
        public void ExecStore(string storeName, params SqlParameter[] paras)
 {
        {
 createCmd(storeName, paras).ExecuteNonQuery();
           createCmd(storeName, paras).ExecuteNonQuery();
 }
        }
 #endregion
        #endregion


 #region 定义私有的SqlCommand方法
        #region 定义私有的SqlCommand方法
 /// <summary>
        /// <summary>
 /// 定义私有的SqlCommand方法
        /// 定义私有的SqlCommand方法
 /// </summary>
        /// </summary>
 /// <param name="storeName"></param>
        /// <param name="storeName"></param>
 /// <param name="paras"></param>
        /// <param name="paras"></param>
 /// <returns>返回SqlCommand类型的strCmd</returns>
        /// <returns>返回SqlCommand类型的strCmd</returns>
 private  SqlCommand createCmd(string storeName, params SqlParameter[] paras)
        private  SqlCommand createCmd(string storeName, params SqlParameter[] paras)
 {
        {
 SqlConnection con = new SqlConnection(strConn);
            SqlConnection con = new SqlConnection(strConn);
 con.Open();
            con.Open();
 try
            try
 {
            {
 SqlCommand strCmd = new SqlCommand(storeName, con);
                SqlCommand strCmd = new SqlCommand(storeName, con);
 strCmd.CommandType = CommandType.StoredProcedure;
                strCmd.CommandType = CommandType.StoredProcedure;
 foreach (SqlParameter para in paras)
                foreach (SqlParameter para in paras)
 {
                {
 strCmd.Parameters.Add(para);
                    strCmd.Parameters.Add(para);
 }
                }
 strCmd.Dispose();
                strCmd.Dispose();
 return strCmd;
                return strCmd;
 }
            }
 catch (SqlException error)
            catch (SqlException error)
 {
            {
 throw error;
                throw error;
 }
            }
 }
        }
 #endregion
        #endregion




 }
    }
 }
}
 
 
自己先记下来~~~
 using System;
using System; using System.Data;
using System.Data; using System.Data.SqlClient;
using System.Data.SqlClient; using System.Collections;
using System.Collections;

 namespace CuctSoft
namespace CuctSoft {
{ /// <summary>
    /// <summary> /// base.--数据库操作通用基类
    /// base.--数据库操作通用基类 /// </summary>
    /// </summary> ///<author>
    ///<author> /// E-space 2007-4-22
    /// E-space 2007-4-22 /// </author>
    /// </author> 
 public class SqlDb
    public class SqlDb {
    {
 #region "Fields of base calss(数据库连接字符)"
        #region "Fields of base calss(数据库连接字符)"
 /// <summary>
        /// <summary> /// connecting to Database
        /// connecting to Database /// ["personal"]--根据Web.config可更改
        /// ["personal"]--根据Web.config可更改 /// </summary>
        /// </summary> public string strConn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
        public string strConn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
 /// <summary>
        /// <summary> /// SQL command
        /// SQL command /// </summary>
        /// </summary> public string strSQL;
        public string strSQL;
 #endregion
        #endregion

 #region "Functions of base class(数据库操作)"
        #region "Functions of base class(数据库操作)"

 /// <summary>
        /// <summary> /// executing SQL commands-执行一段SQL语句
        /// executing SQL commands-执行一段SQL语句 /// </summary>
        /// </summary> /// <param name="strSQL">string</param>
        /// <param name="strSQL">string</param> /// <returns>return int</returns>
        /// <returns>return int</returns>
 public void dbExecuteSql(string strSQL)
        public void dbExecuteSql(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn); try
            try {
            { myCn.Open();
                myCn.Open(); myCmd.ExecuteNonQuery();
                myCmd.ExecuteNonQuery(); }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        }

 /// <summary>
        /// <summary> ///executing SQL commands-有执行成功判断
        ///executing SQL commands-有执行成功判断 /// </summary>
        /// </summary> /// <param name="strSQL">要执行的SQL语句,为字符串类型string</param>
        /// <param name="strSQL">要执行的SQL语句,为字符串类型string</param> /// <returns>返回执行情况,整形int</returns>
        /// <returns>返回执行情况,整形int</returns> public int dbExecuteSqlEx(string strSQL)
        public int dbExecuteSqlEx(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn);
 try
            try {
            { myCn.Open();
                myCn.Open(); SqlDataReader myReader = myCmd.ExecuteReader();
                SqlDataReader myReader = myCmd.ExecuteReader(); if (myReader.Read())
                if (myReader.Read()) {
                { return 0;
                    return 0; }
                } else
                else {
                { throw new Exception("Value Unavailable!");
                    throw new Exception("Value Unavailable!"); }
                } }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        }

 /// <summary>
        /// <summary> /// get dataset-通过输入的SQL语句得到一个数据集
        /// get dataset-通过输入的SQL语句得到一个数据集 /// </summary>
        /// </summary> /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param> /// <returns>(DataSet)</returns>
        /// <returns>(DataSet)</returns> public DataSet dbExecuteSql4Ds(string strSQL)
        public DataSet dbExecuteSql4Ds(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); try
            try {
            { myCn.Open();
                myCn.Open(); SqlDataAdapter sda = new SqlDataAdapter(strSQL, myCn);
                SqlDataAdapter sda = new SqlDataAdapter(strSQL, myCn); DataSet ds = new DataSet("ds");
                DataSet ds = new DataSet("ds");
 sda.Fill(ds);
                sda.Fill(ds); return ds;
                return ds; }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCn.Close();
                myCn.Close(); }
            } }
        }

 /// <summary>
        /// <summary> /// get single value-返回SQL语句数据集中的第一行第一列整型
        /// get single value-返回SQL语句数据集中的第一行第一列整型 /// </summary>
        /// </summary> /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param> /// <returns>(int)</returns>
        /// <returns>(int)</returns> public int dbExecuteSql4Value(string strSQL)
        public int dbExecuteSql4Value(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn); try
            try {
            { myCn.Open();
                myCn.Open(); object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar(); if (Object.Equals(r, null))
                if (Object.Equals(r, null)) {
                { throw new Exception("value unavailable!");
                    throw new Exception("value unavailable!"); }
                } else
                else {
                { try { int a = (int)r; }
                    try { int a = (int)r; } catch { return 0; }
                    catch { return 0; } return (int)r;
                    return (int)r;
 }
                } }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        } /// <summary>
        /// <summary> /// get single value-返回SQL语句数据集中的第一行第一列整型
        /// get single value-返回SQL语句数据集中的第一行第一列整型 /// </summary>
        /// </summary> /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param> /// <returns>(int)</returns>
        /// <returns>(int)</returns> public string dbExecuteSql4Values(string strSQL)
        public string dbExecuteSql4Values(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn); try
            try {
            { myCn.Open();
                myCn.Open(); object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar(); if (Object.Equals(r, null))
                if (Object.Equals(r, null)) {
                { return "";
                    return ""; }
                } else
                else {
                { return (string)r;
                    return (string)r; }
                } }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        }

 public object dbExecSql4Values(string strSQL)
        public object dbExecSql4Values(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn); try
            try {
            { myCn.Open();
                myCn.Open(); object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar(); if (Object.Equals(r, null))
                if (Object.Equals(r, null)) {
                { return "";
                    return ""; }
                } else
                else {
                { return r;
                    return r; }
                } }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        }
 /// <summary>
        /// <summary> /// get object-返回SQL语句对应的数据集的对象
        /// get object-返回SQL语句对应的数据集的对象 /// </summary>
        /// </summary> /// <param name="strSQL">(string)</param>
        /// <param name="strSQL">(string)</param> /// <returns>(object)</returns>
        /// <returns>(object)</returns> public object dbExecuteSql4ValueEx(string strSQL)
        public object dbExecuteSql4ValueEx(string strSQL) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL, myCn);
            SqlCommand myCmd = new SqlCommand(strSQL, myCn); try
            try {
            { myCn.Open();
                myCn.Open(); object r = myCmd.ExecuteScalar();
                object r = myCmd.ExecuteScalar(); if (Object.Equals(r, null))
                if (Object.Equals(r, null)) {
                { throw new Exception("object unavailable!");
                    throw new Exception("object unavailable!"); }
                } else
                else {
                { return r;
                    return r; }
                } }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        }

 /// <summary>
        /// <summary> /// execute multipul SQL commands -将指定数组中的N条SQL语句同步执行。
        /// execute multipul SQL commands -将指定数组中的N条SQL语句同步执行。 /// </summary>
        /// </summary> /// <author>
        /// <author> /// e-space 2007-4-22
        /// e-space 2007-4-22 /// </author>
        /// </author> /// <param name="strSQLs">string</param>
        /// <param name="strSQLs">string</param> /// <returns>int</returns>
        /// <returns>int</returns> public int dbExecuteSqls(string[] strSQLs)
        public int dbExecuteSqls(string[] strSQLs) {
        { SqlConnection myCn = new SqlConnection(strConn);
            SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand();
            SqlCommand myCmd = new SqlCommand(); int j = strSQLs.Length;
            int j = strSQLs.Length;
 try
            try {
            { myCn.Open();
                myCn.Open(); }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } SqlTransaction myTrans = myCn.BeginTransaction();
            SqlTransaction myTrans = myCn.BeginTransaction();
 try
            try {
            { myCmd.Connection = myCn;
                myCmd.Connection = myCn; myCmd.Transaction = myTrans;
                myCmd.Transaction = myTrans;
 foreach (string str in strSQLs)
                foreach (string str in strSQLs) {
                { myCmd.CommandText = str;
                    myCmd.CommandText = str; myCmd.ExecuteNonQuery();
                    myCmd.ExecuteNonQuery(); }
                } myTrans.Commit();
                myTrans.Commit(); return 0;
                return 0; }
            } catch (System.Data.SqlClient.SqlException e)
            catch (System.Data.SqlClient.SqlException e) {
            { myTrans.Rollback();
                myTrans.Rollback(); throw new Exception(e.Message);
                throw new Exception(e.Message); }
            } finally
            finally {
            { myCmd.Dispose();
                myCmd.Dispose(); myCn.Close();
                myCn.Close(); }
            } }
        }

 /// <summary>
        /// <summary> /// 提供一个Select的数据集,类型为SqlDataReader,不支持自动分页。
        /// 提供一个Select的数据集,类型为SqlDataReader,不支持自动分页。 /// </summary>
        /// </summary> /// <author>
        /// <author> /// e-space  2007-4-22
        /// e-space  2007-4-22 /// </author>
        /// </author> /// <param name="selectString">检索字符串</param>
        /// <param name="selectString">检索字符串</param> /// <returns>SqlDataReader</returns>
        /// <returns>SqlDataReader</returns> public SqlDataReader dbODSGetSDR(string selectString)
        public SqlDataReader dbODSGetSDR(string selectString) {
        { SqlConnection con = new SqlConnection(strConn);
            SqlConnection con = new SqlConnection(strConn);
 SqlCommand cmd = new SqlCommand(selectString, con);
            SqlCommand cmd = new SqlCommand(selectString, con); con.Open();
            con.Open(); SqlDataReader dtr =
            SqlDataReader dtr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
              cmd.ExecuteReader(CommandBehavior.CloseConnection); return dtr;
            return dtr; }
        }

 /// <summary>
        /// <summary> /// 为objectDataSource提供一个Select的数据集,类型为DataTable,支持自动分页。
        /// 为objectDataSource提供一个Select的数据集,类型为DataTable,支持自动分页。 /// </summary>
        /// </summary> /// <author>
        /// <author> ///E-space 2007-4-22
        ///E-space 2007-4-22 /// </author>
        /// </author> /// <param name="sqlCommand">检索字符串</param>
        /// <param name="sqlCommand">检索字符串</param> /// <param name="tableName">DataTable表名</param>
        /// <param name="tableName">DataTable表名</param> /// <returns>DataTable</returns>
        /// <returns>DataTable</returns> //[DataObjectMethod(DataObjectMethodType.Select, true)]
        //[DataObjectMethod(DataObjectMethodType.Select, true)] public DataTable dbODSGetDataTable(string sqlCommand, string tableName)
        public DataTable dbODSGetDataTable(string sqlCommand, string tableName) {
        {

 SqlConnection conn = new SqlConnection(strConn);
            SqlConnection conn = new SqlConnection(strConn); SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);
            SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);
 DataSet ds = new DataSet();
            DataSet ds = new DataSet();
 try
            try {
            { conn.Open();
                conn.Open(); //da.Fill(ds, startRecord, maxRecords, "Employees");
                //da.Fill(ds, startRecord, maxRecords, "Employees"); da.Fill(ds, tableName);
                da.Fill(ds, tableName); }
            } catch (SqlException e)
            catch (SqlException e) {
            { string a = e.Errors.ToString();
                string a = e.Errors.ToString(); }
            } finally
            finally {
            { conn.Close();
                conn.Close(); }
            }
 if (ds.Tables[tableName] != null)
            if (ds.Tables[tableName] != null) return ds.Tables[tableName];
                return ds.Tables[tableName];
 return null;
            return null; }
        }

 public DataTable dbODSGetDataTable(string sqlCommand)
        public DataTable dbODSGetDataTable(string sqlCommand) {
        {

 SqlConnection conn = new SqlConnection(strConn);
            SqlConnection conn = new SqlConnection(strConn); SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);
            SqlDataAdapter da = new SqlDataAdapter(sqlCommand, conn);
 DataTable dt = new DataTable();
            DataTable dt = new DataTable();
 try
            try {
            { conn.Open();
                conn.Open(); //da.Fill(ds, startRecord, maxRecords, "Employees");
                //da.Fill(ds, startRecord, maxRecords, "Employees"); da.Fill(dt);
                da.Fill(dt); }
            } catch (SqlException e)
            catch (SqlException e) {
            { string a = e.Errors.ToString();
                string a = e.Errors.ToString(); }
            } finally
            finally {
            { conn.Close();
                conn.Close(); }
            }
 if (dt != null)
            if (dt != null) return dt;
                return dt;
 return null;
            return null; }
        }


 /// <summary>
        /// <summary> /// 执行存储过程,返回影响的行数
        /// 执行存储过程,返回影响的行数         /// </summary>
        /// </summary> /// <param name="storedProcName">存储过程名</param>
        /// <param name="storedProcName">存储过程名</param> /// <param name="parameters">存储过程参数</param>
        /// <param name="parameters">存储过程参数</param> /// <param name="rowsAffected">影响的行数</param>
        /// <param name="rowsAffected">影响的行数</param> /// <returns></returns>
        /// <returns></returns> public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
        public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected) {
        { 
             using (SqlConnection connection = new SqlConnection(strConn))
            using (SqlConnection connection = new SqlConnection(strConn)) {
            { int result;
                int result; connection.Open();
                connection.Open(); SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
                SqlCommand command = BuildIntCommand(connection, storedProcName, parameters); rowsAffected = command.ExecuteNonQuery();
                rowsAffected = command.ExecuteNonQuery(); result = (int)command.Parameters["ReturnValue"].Value;
                result = (int)command.Parameters["ReturnValue"].Value; //Connection.Close();
                //Connection.Close(); return result;
                return result; }
            } }
        }

 /// <summary>
        /// <summary> /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
        /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值) /// </summary>
        /// </summary> /// <param name="connection">数据库连接</param>
        /// <param name="connection">数据库连接</param> /// <param name="storedProcName">存储过程名</param>
        /// <param name="storedProcName">存储过程名</param> /// <param name="parameters">存储过程参数</param>
        /// <param name="parameters">存储过程参数</param> /// <returns>SqlCommand</returns>
        /// <returns>SqlCommand</returns> private SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
        private SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters) {
        { SqlCommand command = new SqlCommand(storedProcName, connection);
            SqlCommand command = new SqlCommand(storedProcName, connection); command.CommandType = CommandType.StoredProcedure;
            command.CommandType = CommandType.StoredProcedure; foreach (SqlParameter parameter in parameters)
            foreach (SqlParameter parameter in parameters) {
            { if (parameter != null)
                if (parameter != null) {
                { // 检查未分配值的输出参数,将其分配以DBNull.Value.
                    // 检查未分配值的输出参数,将其分配以DBNull.Value. if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null))
                        (parameter.Value == null)) {
                    { parameter.Value = DBNull.Value;
                        parameter.Value = DBNull.Value; }
                    } command.Parameters.Add(parameter);
                    command.Parameters.Add(parameter); }
                } }
            }
 return command;
            return command; }
        }

 /// <summary>
        /// <summary> /// 创建 SqlCommand 对象实例(用来返回一个整数值)
        /// 创建 SqlCommand 对象实例(用来返回一个整数值)     /// </summary>
        /// </summary> /// <param name="storedProcName">存储过程名</param>
        /// <param name="storedProcName">存储过程名</param> /// <param name="parameters">存储过程参数</param>
        /// <param name="parameters">存储过程参数</param> /// <returns>SqlCommand 对象实例</returns>
        /// <returns>SqlCommand 对象实例</returns> private SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
        private SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters) {
        { SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
            SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters); command.Parameters.Add(new SqlParameter("ReturnValue",
            command.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue,
                SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null));
                false, 0, 0, string.Empty, DataRowVersion.Default, null)); return command;
            return command; }
        } #endregion
        #endregion

 #region
        #region  /// <summary>
        /// <summary> /// 调用createCmd创建SqlDataReadere方法
        /// 调用createCmd创建SqlDataReadere方法 /// </summary>
        /// </summary> /// <param name="storeName">存储过程名</param>
        /// <param name="storeName">存储过程名</param> /// <param name="paras">参数数组</param>
        /// <param name="paras">参数数组</param>
 public void ExecStore(string storeName, params SqlParameter[] paras)
        public void ExecStore(string storeName, params SqlParameter[] paras) {
        { createCmd(storeName, paras).ExecuteNonQuery();
           createCmd(storeName, paras).ExecuteNonQuery(); }
        } #endregion
        #endregion

 #region 定义私有的SqlCommand方法
        #region 定义私有的SqlCommand方法 /// <summary>
        /// <summary> /// 定义私有的SqlCommand方法
        /// 定义私有的SqlCommand方法 /// </summary>
        /// </summary> /// <param name="storeName"></param>
        /// <param name="storeName"></param> /// <param name="paras"></param>
        /// <param name="paras"></param> /// <returns>返回SqlCommand类型的strCmd</returns>
        /// <returns>返回SqlCommand类型的strCmd</returns> private  SqlCommand createCmd(string storeName, params SqlParameter[] paras)
        private  SqlCommand createCmd(string storeName, params SqlParameter[] paras) {
        { SqlConnection con = new SqlConnection(strConn);
            SqlConnection con = new SqlConnection(strConn); con.Open();
            con.Open(); try
            try {
            { SqlCommand strCmd = new SqlCommand(storeName, con);
                SqlCommand strCmd = new SqlCommand(storeName, con); strCmd.CommandType = CommandType.StoredProcedure;
                strCmd.CommandType = CommandType.StoredProcedure; foreach (SqlParameter para in paras)
                foreach (SqlParameter para in paras) {
                { strCmd.Parameters.Add(para);
                    strCmd.Parameters.Add(para); }
                } strCmd.Dispose();
                strCmd.Dispose(); return strCmd;
                return strCmd; }
            } catch (SqlException error)
            catch (SqlException error) {
            { throw error;
                throw error; }
            } }
        } #endregion
        #endregion



 }
    } }
}
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号