`
sptgreen
  • 浏览: 44570 次
  • 性别: Icon_minigender_1
  • 来自: 荆门
社区版块
存档分类
最新评论

使用DbHelperSQL调用存储过程的方法

    博客分类:
  • .NET
 
阅读更多
下面代码是个调用存储过程的例子,对于学习怎么使用DbHelperSQL调用存储过程很有帮助.
/// <summary>
        /// 获得数据集
        /// </summary>
        /// <param name="tblName">表名</param>
        /// <param name="RetColumns">需要返回的列,默认为全部 </param>
        /// <param name="Orderfld">排序字段名</param>
        /// <param name="PageSize">页尺寸</param>
        /// <param name="PageIndex">页码 </param>
        /// <param name="IsCount">返回记录总数, 非 0 值则返回 </param>
        /// <param name="OrderType">设置排序类型, 非 asc 值则降序 </param>
        /// <param name="strWhere">查询条件 (注意: 不要加 where) </param>
        /// <returns>数据集</returns>
        public static SqlDataReader Get_DataReader(string tblName,string RetColumns,string Orderfld,int PageSize,int PageIndex,int IsCount,string OrderType,string strWhere)
        {
            IDataParameter[] parameters = new SqlParameter[8];
            parameters[0]=new SqlParameter("@tblName", SqlDbType.NVarChar,255);//表名
            parameters[1]=new SqlParameter("@RetColumns", SqlDbType.NVarChar,1000);//需要返回的列,默认为全部 
            parameters[2]=new SqlParameter("@Orderfld", SqlDbType.NVarChar,255);//排序字段名
            parameters[3]=new SqlParameter("@PageSize", SqlDbType.Int);//页尺寸
            parameters[4]=new SqlParameter("@PageIndex", SqlDbType.Int);//页码 
            parameters[5]=new SqlParameter("@IsCount", SqlDbType.Bit);//返回记录总数, 非 0 值则返回 
            parameters[6]=new SqlParameter("@OrderType", SqlDbType.NVarChar,50);//设置排序类型, 非 asc 值则降序 
            parameters[7]=new SqlParameter("@strWhere", SqlDbType.NVarChar,1000);//查询条件 (注意: 不要加 where) 

            parameters[0].Value=tblName;
            parameters[1].Value=RetColumns;
            parameters[2].Value=Orderfld;
            parameters[3].Value=PageSize;
            parameters[4].Value=PageIndex;
            parameters[5].Value=IsCount;
            parameters[6].Value=OrderType;
            parameters[7].Value=strWhere;
            try
            {
                return DbHelperSQL.RunProcedure("proc_y_GetRecordFromPage",parameters);
            }
            catch
            {
                return null;
            }
        }

/// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <returns>SqlDataReader</returns>
        public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
        {
            SqlConnection connection = new SqlConnection(connectionString);
            SqlDataReader returnReader;
            connection.Open();
            SqlCommand command = BuildQueryCommand( connection,storedProcName, parameters );
            command.CommandType = CommandType.StoredProcedure;
            returnReader = command.ExecuteReader();                
            return returnReader;            
        }
/// <summary>
        /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
        /// </summary>
        /// <param name="connection">数据库连接</param>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <returns>SqlCommand</returns>
        private static SqlCommand BuildQueryCommand(SqlConnection connection,string storedProcName, IDataParameter[] parameters)
        {            
            SqlCommand command = new SqlCommand( storedProcName, connection );
            command.CommandType = CommandType.StoredProcedure;
            foreach (SqlParameter parameter in parameters)
            {
                command.Parameters.Add( parameter );
            }
            return command;            
        }

分享到:
评论
1 楼 sptgreen 2009-03-19  
看了上面的代码,查了下关于IDataParameter[] 资料

IDataParameter[]简单的说来,就是可以包含任何数据库参数的数组,这些参数可以是SqlParameter或者OleDbParameter,但是,IDataParameter[]不可以直接从SqlParameter[]转换过来。


下面是三种创建IDataParameter[]的方法:
一、直接构造:
IDataParameter[] parameters = new IDataParameter[]{ sqlparameter1, sqlparameter2, new SqlParameter(...) }
二、通过ArrayList转换。
ArrayList paramlist = new ArrayList()
paramlist.Add( sqlparameter1 );
....
....
IDataParameter param = (IDataParameter[]) paramlist.ToArray( typeof( IDataParameter ) );
三、通过其他Parameter类型的数组创建。
SqlParameter[] _param = new SqlParameter[]{ .... }

IDataParameter[] param = new IDataParameter[ _param.Length ];
_param.CopyTo( param, 0 );

相关推荐

    DbHelperSQL类文件(asp.net最基本方法)

    DbHelperSQL类,包括对数据库操作的所有方法,如公用方法、执行简单SQL语句、执行带参数的SQL语句、存储过程操作等。

    使用SQLHelper类调用带输出、返回参数的存储过程

    很好的资料,大家一起分享

    oracle sql access 数据库连接类DBHelper(.net c#)

    集成了oracle、sql、access三个数据库的链接,可执行sql语句,可执行存储过程,是.net的,oracle的那块有点不人性化,有待修改,哈哈,大家见谅哈。

    DBHelper数据库操作类(支持OleDb、MySQL、Oracle、SQL、SQLite).zip

    执行带一个存储过程参数的的SQL语句。 向数据库里插入图像格式的字段 执行一条计算查询结果语句,返回查询结果 执行查询语句,返回MySqlDataReader 执行查询语句,返回DataSet 执行SQL语句,返回影响的记录数 执行多...

    ASP.NET基础控件技巧教程

    Asp.net页面内传参数方法 调用存储过程(两种方法比较) 调用存储过程通用类DBHelper 加密解密 SQL常用DBHelper Asp.net存储过程无限分类 等。。。。许多精彩内容,看后受益匪浅。

    ASP.NET技巧收集

    Asp.net页面内传参数方法,调用存储过程(两种方法比较),调用存储过程通用类DBHelper,加密解密,SQL常用DBHelper,Asp.net存储过程无限分类,TreeView无限分类,无限分类MVC,荧光棒效果 获取控件上全选,回车转换...

    ASP.NET基础控件-教程

     调用存储过程(两种方法比较)  调用存储过程通用类DBHelper  加密解密  SQL常用DBHelper  Asp.net存储过程无限分类  TreeView无限分类  无限分类MVC  荧光棒效果获取控件上全选  回车转换成Tab  DataGrid...

    .NET DbHelper 数据访问类(MSSQL Mysql ORACLE)

    /// &lt;param name="sql"&gt;要执行的 Sql 语句或存储过程名等。 /// &lt;param name="type"&gt;CommandType 的类型,即该命令是 Sql 语句,还是存储过程名等。 /// 受影响的记录数。 int GetEffect(string sql, ...

    最全C#基础类库

    15.执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ); 16.执行存储过程;构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值); 17.执行存储过程,返回影响的行数...

    MySQL的DBhelper

    MySql的帮助类,可以直接调用,这个帮助类是执行存储过程的,如果需要SQL语句的可以自行修改封装即可

    超牛×的DBHelper类

    /// 执行的存储过程 /// /// &lt;param name="storedProcedure"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; public DbCommand GetStoredProcCommond(string storedProcedure) { DbCommand dbCommand = connection....

    asp.net开发常用整理集合

     调用存储过程(两种方法比较)  调用存储过程通用类DBHelper  加密解密  SQL常用DBHelper  Asp.net存储过程无限分类  TreeView无限分类  无限分类MVC  荧光棒效果 获取控件上全选  回车转换成Tab ...

    sqlserver数据库python帮助类.rar

    自己写的一个python sqlserver数据库帮助操作类,增删改查和执行存储过程方法都有

    多数据库操作帮助类

    例如:MySql数据库,默认配置文件为:MySqlConfig 引用DbHelper.HelperMini命名空间,随之调用其方法即可 初始化:MySqlHelperMini helper = new MySqlHelperMini(HelperConfigType.appSettings,"MySqlConfig"); ...

    C#基类库(苏飞版)

    15.执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ); 16.执行存储过程;构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值); 17.执行存储过程,返回影响的行数...

    CMS.DBUtility.dll

    public abstract class DbHelperSQL { //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. public static string connectionString = PubConstant.ConnectionString; public ...

    DbHelperMySQL

    MySQL的数据操作类。集成了各操作数据的常用方法 可以执行简单SQL语句 可以执行带多个参数的操作,返回查询结果或者影响行数以及object对象 可以执行带一个存储过程参数的的SQL语句。

    InventoryApp:项目8和9已提交Android Nanodegree跟踪

    通常,学生只有在运行应用程序并调用方法后才意识到他们的代码有SQL语法错误,这会导致项目无法通过。 最佳做法。 该代码遵循以下所有最佳实践: 文本大小在sp中定义。 长度以dp定义。 适当使用填充和边距,以...

Global site tag (gtag.js) - Google Analytics