C#調用存儲過程的通用類

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]);
????????????????}
????????????}
????????}
????}
}

轉載于:https://www.cnblogs.com/JoeDZ/archive/2008/07/07/1237476.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247249.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247249.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖靈獎得主(一)

本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A A.M. Turing Award ACMs most prestigious technical award is accompanied by a prize of $25,000. It is given to an individual selected fo…

react-router-dom@6獲取路由傳參

目錄 參數獲取 1、子路由形式攜帶 2、問號(?)形式參數 3、事件跳轉傳參 router/index.tsx import App from "App"; import Home from "pages/Home"; import List from "pages/List"; import Detail from "pages/Detail"; import…

圖靈獎得主(二)

本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1987年度的圖靈獎授予了IBM沃特森研究中心老資格的研究員 約翰科克(Johncocke)。 科克是從機械到數學、又從數學轉到 計算機方向上來的學者。…

jQuery效果之滑動

jQuery 滑動方法有三種&#xff1a;slideDown()、slideUp()、slideToggle()。 jQuery slideDown() 方法用于向下滑動元素&#xff0c; 語法&#xff1a;$(selector).slideDown(speed,callback); 可選的 speed 參數規定效果的時長。它可以取以下值&#xff1a;"slow"、…

Error: This command has to be run with superuser privileges (under the root user on most systems).

意思是錯誤&#xff1a;此命令必須以超級用戶權限&#xff08;在大多數系統上以root用戶權限&#xff09;運行。所以當前的用戶是普通用戶&#xff0c;需要切換為超級用戶&#xff08;root用戶&#xff09;先輸入在命令行中輸入 su root 然后會出現Password&#xff1a;&#…

圖靈獎得主(三)

本文轉自&#xff1a;本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 繼1979年度圖靈獎首次授予一位加拿大學者K.E.Iverson之后&#xff0c; 1989年度的圖靈 獎又一次授予加拿大學者威廉凱亨(Willia…

對微信公共號的理解

通過redirect_uri獲取code 通過code和appid 獲取access_token 進行鑒權 轉載于:https://www.cnblogs.com/zhouyideboke/p/11309752.html

vue3 v-model變化

概覽 就變化內容而言&#xff0c;此部分屬于高階內容&#xff1a; 非兼容&#xff1a;用于自定義組件時&#xff0c;v-model的 prop 和事件默認名稱已更改&#xff1a; prop&#xff1a;value -> modelValue&#xff1b;event&#xff1a;input -> update:modelValue&a…

圖靈獎得主(四)

本文轉自&#xff1a;本文轉自&#xff1a;本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1991年度的圖靈獎授予了愛丁堡大學計算機科學系教授羅 賓米爾納(Robin Milner)。米爾納是繼M.V.Wilkes(1…

sql 日期類型空值等于 1900-01-01

SQL server 中查詢&#xff1a;select cast( as datetime) 結果&#xff1a;1900-01-01 00:00:00.000 做為判斷條件的話&#xff0c;要注意。不能直接 轉載于:https://www.cnblogs.com/meng9527/p/11311765.html

koa洋蔥模型

Koa 和 Express 都會使用到中間件 Express的中間件是順序執行&#xff0c;從第一個中間件執行到最后一個中間件&#xff0c;發出響應如上圖 Koa是從第一個中間件開始執行&#xff0c;遇到 next 進入下一個中間件&#xff0c;一直執行到最后一個中間件&#xff0c;在逆序&#x…

圖靈獎得主(五)

[1993]斯坦恩斯--"打工"帶來的機遇 斯坦恩斯是學數學出身的。1958年他在卡爾頓學院(Carlton College)取 得數學學士學位后進入普林斯頓大學研究生院&#xff0c;用了3年時間就 取得博士學位&#xff0c;其博士論文課題是關于博奕論的。 斯坦恩斯跨進計算機科…

koa后端允許跨域

舉個例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevice-width…

python面向對象之繼承

面向對象之繼承 什么是面向對象的繼承&#xff1f; 繼承&#xff08;英語&#xff1a;inheritance&#xff09;是面向對象軟件技術當中的一個概念。如果一個類別A“繼承自”另一個類別B&#xff0c;就把這個A稱 為“B的子類別”&#xff0c;而把B稱為“A的父類別”也可以稱“B是…

美國正面臨“人才泡沫”破裂危機?

&#xff08;Jason Lane和Kevin Kinser/文&#xff09;最近&#xff0c;與教育有關的種種問題在美國社會引起了廣泛討論。首先巨額的學生貸款問題&#xff1a;根據美聯儲紐約分行在2012年11月發布的一份報告&#xff0c;全美學生貸款總額已經達到420億美元&#xff0c;其中新增…

ngrx學習筆記

什么是ngrx ngrx是Angular基于Rxjs的狀態管理&#xff0c;保存了Redux的核心概念&#xff0c;并使用RxJs擴展的Redux實現。使用Observable來簡化監聽事件和訂閱等操作。 在看這篇文章之前&#xff0c;已經假設你已了解rxjs和redux。 有條件的話請查看官方文檔進行學習理解。 所…

解決RM刪除沒有釋放空間問題

www172-18-8-12 log]$ df -h Filesystem Size Used Avail Use% Mounted on/dev/vda1 120G 101G 20G 84% /devtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 0 7.8G 0% /dev/shmtmpfs 7.8G 601M 7.2G 8% /run 我刪除文件時&#xff0c;直接用的rm 沒有加參數lf,結果空間沒有釋放 文件已經…

.slice(0)

高手代碼里看到.slice(0)&#xff0c;查了下這樣寫的好處&#xff1a; 1.對原數組進行深拷貝&#xff0c;這樣進行一系列操作的時候就不影響原數組了&#xff1b; 2.將類數組對象轉化為真正的數組對象&#xff1a;var anchorArray [].slice.call(document.getElementsByTagN…

在線課程學習、科研科技視頻網站

最近在網絡學習課程&#xff0c;發現很多在線課程網站&#xff0c;與大家分享一下。本人新浪博客&#xff1a;http://blog.sina.com.cn/u/1240088994 公開課課程圖譜http://coursegraph.com/navigation/ 1. 網易公開課 http://open.163.com/&#xff1b; 網易TED http://…

對html2canvas的研究

介紹 該腳本允許您直接在用戶瀏覽器上截取網頁或部分網頁的“屏幕截圖”。屏幕截圖基于DOM&#xff0c;因此它可能不是真實表示的100&#xff05;準確&#xff0c;因為它沒有制作實際的屏幕截圖&#xff0c;而是根據頁面上可用的信息構建屏幕截圖。 這個怎么運作 該腳本遍歷其加…