码迷,mamicode.com
首页 > Web开发 > 详细

ADO.NET中的存储过程封装

时间:2017-10-08 18:15:24      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:c#   ado.net   sql存储过程   

//获取连接字符串
private static readonly string ConnectionString=ConfigurationManager.["connectionString"].ConnectionString;

//执行增删改的存储过程

public static int ExecuteNonQueryByProcedure(string procedureName, params SqlParameter[] parameters)

{

    using (SqlConnection con = new SqlConnection(DbConnectionString))//创建连接

    using (SqlCommand cmd = new SqlCommand(procedureName, con))//创建命令

    {

        if (parameters != null && parameters.Length > 0)

        {

            cmd.Parameters.AddRange(parameters);//批量添加参数

        }

        //【重要】 设置当前命令为存储过程

        cmd.CommandType = CommandType.StoredProcedure;

 

        con.Open();//打开连接

        return cmd.ExecuteNonQuery();//执行增删改

}

}

//返回首行首列的存储过程

public static object ExecuteScalarByProcedure(string procedureName, params SqlParameter[] parameters)

{

    using (SqlConnection con = new SqlConnection(DbConnectionString))//创建连接

    using (SqlCommand cmd = new SqlCommand(procedureName, con))//创建命令

    {

        if (parameters != null && parameters.Length > 0)

        {

            cmd.Parameters.AddRange(parameters);//批量添加参数

        }

    //【重要】 设置当前命令为存储过程

        cmd.CommandType = CommandType.StoredProcedure;

 

        con.Open();//打开连接

        return cmd.ExecuteScalar();//返回首行首列

    }

}

//逐行读取数据的存储过程

public static SqlDataReader ExecuteReaderByProcedure(string procedureName, params SqlParameter[] parameters)

{

    SqlConnection con = new SqlConnection(DbConnectionString);//创建连接

    using (SqlCommand cmd = new SqlCommand(procedureName, con))//创建命令

    {

        if (parameters != null && parameters.Length > 0)

        {

            cmd.Parameters.AddRange(parameters);//批量添加参数

        }

    //【重要】 设置当前命令为存储过程

        cmd.CommandType = CommandType.StoredProcedure;

        con.Open();//打开连接

        return cmd.ExecuteReader(CommandBehavior.CloseConnection);//返回SqlDataReader  逐行读取  SqlConnection不能在这里释放

    }

}

//返回DataSet的存储过程

public static DataSet ExecuteDataSetByProcedure(string procedureName, params SqlParameter[] parameters)

{

    DataSet ds = new DataSet();

 

    using (SqlConnection con = new SqlConnection(DbConnectionString))//创建连接

    using (SqlDataAdapter ada = new SqlDataAdapter(procedureName, con))//创建适配器

    {

        if (parameters != null && parameters.Length > 0)

        {

            ada.SelectCommand.Parameters.AddRange(parameters);//批量添加参数

        }

        ada.SelectCommand.CommandType = CommandType.StoredProcedure;

 

        ada.Fill(ds);//将查询出的数据填充到DataSet中       

    }

    return ds;

}

本文出自 “恋上你的微笑” 博客,谢绝转载!

ADO.NET中的存储过程封装

标签:c#   ado.net   sql存储过程   

原文地址:http://lywfdx.blog.51cto.com/11618934/1970679

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!