`
- 浏览:
977433 次
- 性别:
- 来自:
北京
-
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Collections;
using System.Data;
// 摘要:数据访问助手。
// 作者:ZhiQiao
// 日期:2008/07/02
namespace ZhiQiao.DataAccessHelper
{
// 存储过程调用助手。
public class StoreProcedure
{
// 存储过程名称。
private string _name;
// 数据库连接字符串。
private string _conStr;
// 构造函数
// sprocName: 存储过程名称;
// conStr: 数据库连接字符串。
public StoreProcedure(string sprocName, string conStr) {
_conStr = conStr;
_name = sprocName;
}
// 执行存储过程,不返回值。
// paraValues: 参数值列表。
// return: void
public void ExecuteNoQuery(params object[] paraValues) {
using (SqlConnection con = new SqlConnection(_conStr)) {
SqlCommand comm = new SqlCommand(_name, con);
comm.CommandType = CommandType.StoredProcedure;
AddInParaValues(comm, paraValues);
con.Open();
comm.ExecuteNonQuery();
con.Close();
}
}
// 执行存储过程返回一个表。
// paraValues: 参数值列表。
// return: DataTable
public DataTable ExecuteDataTable(params object[] paraValues) {
SqlCommand comm = new SqlCommand(_name, new SqlConnection(_conStr));
comm.CommandType = CommandType.StoredProcedure;
AddInParaValues(comm, paraValues);
SqlDataAdapter sda = new SqlDataAdapter(comm);
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
// 执行存储过程,返回SqlDataReader对象,
// 在SqlDataReader对象关闭的同时,数据库连接自动关闭。
// paraValues: 要传递给给存储过程的参数值类表。
// return: SqlDataReader
public SqlDataReader ExecuteDataReader(params object[] paraValues) {
SqlConnection con = new SqlConnection(_conStr);
SqlCommand comm = new SqlCommand(_name, con);
comm.CommandType = CommandType.StoredProcedure;
AddInParaValues(comm, paraValues);
con.Open();
return comm.ExecuteReader(CommandBehavior.CloseConnection);
}
// 获取存储过程的参数列表。
private ArrayList GetParas() {
SqlCommand comm = new SqlCommand("dbo.sp_sproc_columns_90",
new SqlConnection(_conStr));
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@procedure_name", (object)_name);
SqlDataAdapter sda = new SqlDataAdapter(comm);
DataTable dt = new DataTable();
sda.Fill(dt);
ArrayList al = new ArrayList();
for (int i = 0; i < dt.Rows.Count; i++) {
al.Add(dt.Rows[i][3].ToString());
}
return al;
}
// 为 SqlCommand 添加参数及赋值。
private void AddInParaValues(SqlCommand comm, params object[] paraValues) {
comm.Parameters.Add(new SqlParameter("@RETURN_VALUE", SqlDbType.Int));
comm.Parameters["@RETURN_VALUE"].Direction =
ParameterDirection.ReturnValue;
if (paraValues != null) {
ArrayList al = GetParas();
for (int i = 0; i < paraValues.Length; i++) {
comm.Parameters.AddWithValue(al[i + 1].ToString(),
paraValues[i]);
}
}
}
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### C#调用存储过程的通用类 #### 概述 在C#开发中,经常需要与数据库进行交互,其中一个常见的需求就是通过调用数据库中的存储过程来执行复杂的查询或更新操作。本篇将详细介绍一个C#通用类,用于简化调用SQL ...
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
本篇文章将详细探讨如何使用C#调用存储过程的通用类,以及其相关的方法。 首先,我们来看这个名为`StoreProcedure`的类,它的主要目的是提供一个简洁的方式来执行数据库中的存储过程。这个类有两个私有成员变量,...
为了方便地在C#应用程序中调用这些存储过程,我们可以创建一个通用类来进行抽象和封装。下面将详细介绍如何在C#中构建这样的通用类,并解释相关的知识点。 首先,我们需要了解存储过程的基本概念。存储过程是数据库...
### C# 版 Oracle 数据库通用操作类解析 在现代软件开发中,数据库操作是必不可少的一部分,而 C# 结合 Oracle 数据库的应用尤为广泛。本文将深入探讨一个用于简化 Oracle 数据库操作的 C# 类——`ConnForOracle`。...
"C#操作SQL Server数据库通用类" 本文档中提供了一个通用的C#类,用于访问SQL Server数据库。该类名为DataAccess,位于insurer命名空间中。该类提供了基本的数据库操作,包括打开和关闭数据库连接、执行存储过程、...
2. **命令构建**:允许传入SQL查询语句或者存储过程名,通过SqlCommand对象执行。可以支持参数化查询,防止SQL注入攻击。 3. **数据读取**:使用SqlDataReader进行数据流式读取,高效且内存占用低。对于大数据量...
C#SQL数据库操作通用类,运行SQL语句。 运行SQL语句返回DataReader,SqlDataReader对象;生成Command对象;返回adapter对象;运行SQL语句,返回DataSet对象;返回SQL语句执行结果的第一行第一列;返回SQL语句第一列,...
在C#中,实现数据库操作通用类是为了提高代码的复用性和灵活性,使其能够适应不同的数据库系统,如MySQL、SQL Server、Oracle或SQLite等。本篇文章将详细探讨如何创建一个数据库操作通用类,并涵盖其核心组件和功能...
总结来说,C#中调用含参存储过程涉及到的主要步骤包括:创建数据库连接,设置SqlCommand对象,添加参数并指定其方向,执行存储过程,最后处理输出参数。这个过程在进行数据库操作时非常常见,尤其是在需要多次执行...
独立存储操作辅助类(IsolatedStorageHelper.cs) 序列号操作辅助类(Serializer.cs) 获取一个对象,它提供用于访问经常引用的目录的属性。(SpecialDirectories.cs) 简单的Word操作对象(WordCombineUtil.cs) 这个类...
4. **数据库操作方法**:通用类可能会包含如ExecuteNonQuery(执行非查询操作,如INSERT, UPDATE, DELETE),ExecuteScalar(执行返回单个值的查询,如COUNT(*)),以及ExecuteReader(执行返回数据集的查询)等方法...
3. `cHelper.cs`:这个名字暗示这是一个辅助类,可能包含一些通用的辅助函数,例如日志记录、错误处理或转换函数,这些函数可能在调用存储过程时派上用场。 4. `cPerf.cs`:根据命名,这个文件可能包含性能相关的类...
### 通用分页存储过程知识点解析 #### 一、存储过程概述 在数据库管理系统中,存储过程是一种预先编译并存储在数据库中的SQL程序。它能够接收参数,并根据这些参数执行复杂的逻辑操作,如数据查询、更新等。通过...
4. **通用类设计**:在"C# ES通用类demo"中,开发者可能创建了一个名为`ESCommon`的类,这个类包含了一系列静态方法,用于执行常见的增删改查操作。这样做的好处是代码复用,提高开发效率,同时保持代码整洁。 5. *...
本篇将详细解析标题为"C#通用数据库帮助类(MyDbHelper.cs)无需修改直接使用"的知识点,以及相关文件内容。 首先,`MyDbHelper.cs`是一个C#源代码文件,通常它会包含一个静态类或实例类,用于封装数据库操作的通用...
这个压缩包包含两个关键文件,一个是`SqliteHelper.cs`,它很可能是一个C#类,提供了与Sqlite数据库进行交互的通用方法。这个类可能包含了连接数据库、执行SQL语句、插入、更新、删除和查询数据等基本操作的封装。...
根据给定的信息,本文将详细解释一个用于C#操作MSSQL数据库的通用类的关键功能与实现细节。此通用类提供了多种方法来执行常见的数据库操作,包括查询、更新数据等。 ### C# 操作MSSQL数据库通用类 #### 类概述 `...
3. **执行存储过程** 调用存储过程的方式与执行SQL语句类似,只需将SQL语句替换为存储过程的名称,如`cmd.CommandType = CommandType.StoredProcedure;`,`cmd.CommandText = "usp_YourProcedure";`,同样可以使用`...
独立存储操作辅助类(IsolatedStorageHelper.cs) 序列号操作辅助类(Serializer.cs) 获取一个对象,它提供用于访问经常引用的目录的属性。(SpecialDirectories.cs) 简单的Word操作对象(WordCombineUtil.cs) 这个类...