`
sptgreen
  • 浏览: 45518 次
  • 性别: 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语句、存储过程操作等。

    DbHelperSQL.rar_C# DbHelperSQL_数据操作

    我们可以看到DbHelperSQL类的具体实现,包括构造函数(用于设置数据库连接字符串)、ExecuteNonQuery(执行非查询SQL)、ExecuteScalar(执行返回单个值的SQL)、ExecuteReader(执行返回DataReader的SQL)等方法。...

    ADO.NET调用SQL Server存储过程

    ADO.NET调用SQL Server存储过程是数据库操作中的常见任务,特别是在.NET框架中。存储过程是一种预编译的SQL代码集合,它可以提高性能、减少网络流量并增强数据安全性。以下是关于如何使用ADO.NET调用存储过程的详细...

    DbHelperSQL类

    DbHelperSQL类通常会提供方法来执行SQL语句,如`ExecuteNonQuery`(执行非查询操作,如INSERT、UPDATE或DELETE),`ExecuteScalar`(返回单个值,如查询结果的第一行第一列),以及`ExecuteReader`(用于获取数据集...

    DbHelperMySQL,DbHelperSQL提供增删改查

    在实际使用中,开发人员会实例化`DbHelperMySQL`或`DbHelperSQL`对象,然后调用其提供的方法来执行相应的数据库操作。例如,为了插入一条记录,他们可能会使用`ExecuteNonQuery`方法,并传递一个包含INSERT SQL语句...

    DbHelperSQL_SQL_Server数据库操作类

    5. **存储过程调用**:如果应用中使用了存储过程,DbHelperSQL_SQL_Server会提供相应的方法来执行存储过程,并能够传递输入、输出或输入/输出参数。 6. **数据填充**:为了方便地将查询结果填充到数据集(DataSet)...

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

    `SQLHelper`类提供了多个重载方法来执行存储过程,其中一个关键方法是接受`SqlParameter[]`数组作为参数的方法。通过创建`SqlParameter`对象,并设置其`ParameterName`、`SqlDbType`、`Direction`(输入、输出、输入...

    存储过程与事务

    此函数接收存储过程名称和参数数组,执行存储过程,并返回一个包含结果集的`DataSet`对象。 #### 二、事务处理 事务处理确保了数据库操作的原子性、一致性、隔离性和持久性(ACID特性)。在C#中,可以使用`...

    DBHelper 执行简单Sql语句的

    ### DBHelper 执行简单SQL语句的关键知识点 #### 一、概述 在.NET框架中,`DBHelper`类被设计用于简化对数据库的操作。通过封装常见的数据库操作(如执行SQL命令、查询数据等),该类使得开发人员可以更加高效地...

    DBHelper底层数据库操作类(sqlserver,access)

    使用DBHelperSql,开发者可以通过调用其提供的方法,如ExecuteNonQuery(执行非查询操作,如插入、更新或删除语句)、ExecuteScalar(执行返回单个值的查询)和FillDataSet(填充数据集,通常用于获取多行数据)等,...

    DBHelper.cs和使用方法

    DBHelper.cs是一个常见的数据库辅助类,它在.NET开发中被广泛使用,特别是在处理与数据库交互的场景下。这个文件通常包含一系列静态方法,...总的来说,理解和掌握DBHelper的使用方法对于.NET开发者来说是非常重要的。

    C#中使用DbHelper连接SqlServer数据库示例代码.zip

    接下来,我们可以添加更多的方法来执行SQL命令,例如`ExecuteNonQuery`(执行不返回结果的SQL命令)、`ExecuteScalar`(返回单个值的SQL命令)和`FillDataSet`(填充DataSet的SQL查询): ```csharp // 执行不返回...

    asp.net中IDataParameter调用存储过程的实现方法

    然后,调用DbHelperSQL类的RunProcedureParOut方法,这个方法封装了打开数据库连接、创建SqlCommand、执行存储过程并获取输出参数的逻辑。最后,通过返回的output值来得到存储过程的执行结果,并将这个结果以字符串...

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

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

    SQL DBHelper

    使用SQL DBHelper 类时,开发者只需实例化这个类,然后调用相应的方法,即可轻松地完成数据库操作。例如,以下代码展示了如何使用SQL DBHelper 执行一条简单的SELECT语句: ```csharp using (SqlDBHelper dbHelper ...

    C#数据库封装(含存储过程)

    3. **执行存储过程** 调用存储过程的方式与执行SQL语句类似,只需将SQL语句替换为存储过程的名称,如`cmd.CommandType = CommandType.StoredProcedure;`,`cmd.CommandText = "usp_YourProcedure";`,同样可以使用`...

    android数据存储之DbHelper

    在Android应用开发中,数据存储是一项至关重要的任务,它使得...通过合理使用DbHelper,我们可以方便地实现数据的持久化存储,提升应用的用户体验。在实际项目中,结合 Dao 层可以进一步提高代码的可读性和可复用性。

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

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

    asp.net中调用存储过程的方法

    执行上述SQL语句后,通过***调用存储过程的方法如下: ```csharp public static DataTable GetList(string sqlDBO) { DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(sqlDBO, Connection); ***...

    sql server数据库操作类

    `DbHelperSQL.cs`类可能会提供开始事务(`BeginTransaction()`)、提交事务(`Commit()`)和回滚事务(`Rollback()`)的方法,以处理可能出现的异常情况。 3. **命令执行**:使用`SqlCommand`对象执行SQL语句,如`...

Global site tag (gtag.js) - Google Analytics