ADO.Net和SqlHelper封装

1.什么是ADO.Net
简单来讲,ADO.NET是用于和数据源打交道的.Net结束,是一组向.NET程序员公开数据访问服务的类
 
2. ADO.NET组成部分对象模型
(1)ADO.NET的两个重要组成部分:.NET数据提供程序和数据集(DataSet)
 
(2)ADO.NET对象模型如下图:
 
3.数据库操作类的封装 SqlHelper
(1)Web.config 配置数据库连接字符串
<connectionStrings>
   <add name="Connectionstring" connectionString="Data Source=(local);Initial Catalog=**;Integrated Security=False;User ID=sa;Password=******" providerName="System.Data.SqlClient" /> 
  </connectionStrings>

(2)封装sqlHelper类

public static class SqlHelper
    {
        //创建连接字符串
        public static readonly string connStr = ConfigurationManager.ConnectionStrings["Connectionstring"].ConnectionString;
        /// <summary>
        /// 返回受影响的行数 用于执行Sql语句
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public static int ExecNonQuery(string sql, SqlParameter[] parameter)
        {
            using (SqlConnection con = new SqlConnection(connStr))
            {
                con.Open();
                using (SqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (parameter != null)
                    {
                        cmd.Parameters.AddRange(parameter);
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        /// <summary>
        /// 返回结果集DataSet
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public static DataSet ExecDataSet(string sql, SqlParameter[] parameter)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (parameter != null)
                    {
                        cmd.Parameters.AddRange(parameter);
                    }
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    return ds;
                }
            }
        }
        /// <summary>
        /// 返回表
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public static DataTable ExecDataTable(string sql, SqlParameter[] parameter)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (parameter != null)
                    {
                        cmd.Parameters.AddRange(parameter);
                    }
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    return ds.Tables[0];
                }
            }
        }
        /// <summary>
        /// 执行存储过程,返回影响的行数             
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <param name="connectionString"></param>
        /// <returns></returns>
        public static int RunProcedure(string storedProcName, SqlParameter[] parameters, string connStr)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    //设置命令类型为存储过程
                    cmd.CommandType = CommandType.StoredProcedure;
                    //设置存储过程名称
                    cmd.CommandText = storedProcName;
                    if (parameters != null)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    //执行存储过程
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        public static DataSet LinkProce(string TableName, string OrderFieldName, int OrderType, ref int PageSize, ref int PageIndex, out int backAllCount, string strWhere)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    backAllCount = 1;
                    cmd.CommandText = "Proc_GetRecordByPage";
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] sqlParameters = new SqlParameter[]
                   {
                        new SqlParameter("tblName",TableName),
                        new SqlParameter("orderFieldName",OrderFieldName),
                        new SqlParameter("OrderType",OrderType),
                        new SqlParameter("PageSize",PageSize),
                        new SqlParameter("PageIndex",PageIndex),
                        new SqlParameter("strWhere",strWhere),
                        new SqlParameter("IsReCount",backAllCount),
                   };
                    cmd.Parameters.AddRange(sqlParameters);
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.SelectCommand = cmd;
                    DataSet ds = new DataSet();
                    try
                    {
                        da.Fill(ds);
                        backAllCount = (int)ds.Tables[1].Rows[0][0];
                        return ds;
                    }
                    catch (Exception ex)
                    {
                        return null;
                    }
                    finally
                    {
                        ds.Dispose();
                        conn.Close();
                    }
                }
            }
        }
        /// <summary>
        /// 返回首行首列
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public static object ExecuteScalar(string sql, SqlParameter[] parameter)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (parameter != null)
                    {
                        cmd.Parameters.AddRange(parameter);
                    }
                    return cmd.ExecuteScalar();
                }
            }
        }
    }

(3)SqlHelper调用

int pagesize = 15;
int pageindex = 1;
int backcount = 1;
DataSet ds= SqlHelper.LinkProce("T_TravelExpensive", "createtime",0, ref pagesize, ref pageindex,out  backcount,"");
Response.Write("all count:" + backcount.ToString()+ ";ds count:"+ds.Tables[0].Rows.Count.ToString());

  

 
 
 

猜你喜欢

转载自www.cnblogs.com/ywkcode/p/10924405.html