分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

ADO.NET中的存储过程封装

发布时间:2023-09-06 01:16责任编辑:白小东关键词:.NET
//获取连接字符串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中的存储过程封装

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved