Enterprise Library 太大了,不适合大部分人
可以参考petshop,的SQLHELPER

解决方案 »

  1.   

    //微软的SqlHelper.csusing System;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    /// <summary>
    /// SqlHeper 的摘要说明
    /// </summary>
    public class SqlHelper
    {
        public SqlHelper()
        {    }
        public static SqlConnection mianconn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["strconn"].ToString());    public static void UpdateUseSqlCommandBuilder(SqlConnection conn, bool closeConn, string cmdText, DataTable dtTable)
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            DataTable datatable = new DataTable();
            PrepareCommand(cmd, conn, null, CommandType.Text, cmdText, null);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(datatable);
            foreach (DataRow drTmp in dtTable.Rows)
            {
                DataRow drAdd;
                drAdd = datatable.NewRow();
                for (int i = 1; i < datatable.Columns.Count - 1; i++)
                {
                    drAdd[i] = drTmp[i];
                }
                datatable.Rows.Add(drAdd);
            }
            SqlCommandBuilder sqlCB = new SqlCommandBuilder(sda);
            sda.Update(datatable);
            cmd.Parameters.Clear();
            if (closeConn == true)
            {
                conn.Close();
            }
        }    public static DataTable GetDataTableBySearch(SqlConnection conn, bool closeConn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            DataTable datatable = new DataTable();
            PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(datatable);
            cmd.Parameters.Clear();
            if (closeConn == true)
            {
                conn.Close();
            }
            return datatable;
        }    public static int ExecuteNonQuery(SqlConnection conn, bool closeConn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            if (closeConn == true)
            {
                conn.Close();
            }
            return val;
        }    public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }    public static SqlDataReader ExecuteReader(SqlConnection conn, bool closeConn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
            SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            if (closeConn == true)
            {
                conn.Close();
            }
            return rdr;
        }    public static object ExecuteScalar(SqlConnection conn, bool closeConn, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
        {
            SqlCommand cmd = new SqlCommand();
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            if (closeConn == true)
            {
                conn.Close();
            }
            return val;
        }    public static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = cmdType;
            if (cmdParms != null)
            {
                foreach (SqlParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        }}
      

  2.   

    我用的:
    http://blog.csdn.net/Eray/archive/2007/05/14/1608431.aspx