欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#調(diào)用sql2000存儲(chǔ)過(guò)程方法小結(jié)

 更新時(shí)間:2014年10月27日 09:06:51   投稿:shichen2014  
這篇文章主要介紹了C#調(diào)用sql2000存儲(chǔ)過(guò)程的方法,以實(shí)例形式分別對(duì)調(diào)用帶輸入?yún)?shù)及輸出參數(shù)的存儲(chǔ)過(guò)程進(jìn)行了詳細(xì)分析,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例總結(jié)了C#調(diào)用sql2000存儲(chǔ)過(guò)程方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

調(diào)試環(huán)境:VS.NET 2005,SQL 2000,WINDOWS XP sp2。

語(yǔ)言:C#

一、調(diào)用帶輸入?yún)?shù)的存儲(chǔ)過(guò)程

首先自然是在查詢(xún)分析器里創(chuàng)建一個(gè)存儲(chǔ)過(guò)程嘍~~   如下所示:

復(fù)制代碼 代碼如下:
create proc proc_1
@uid int,
@pwd varchar(255)
as
select UserName from users where uid = @uid and PassWord = @pwd
go

 
接下來(lái)我們就來(lái)看下如何在VS 2005中使用C#調(diào)用這個(gè)存儲(chǔ)過(guò)程。

方法一:

復(fù)制代碼 代碼如下:
SqlConnection conn = new SqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();//打開(kāi)數(shù)據(jù)庫(kù)連接
SqlCommand cmd = new SqlCommand("exec proc_1 @uid=1,@pwd=admin", conn);//Command中寫(xiě)調(diào)用存儲(chǔ)過(guò)程的語(yǔ)句
//大家應(yīng)該看出來(lái)了和直接在查詢(xún)分析器中執(zhí)行很類(lèi)似,“exec 存儲(chǔ)過(guò)程名 @參數(shù)1=參數(shù)值,@參數(shù)2=參數(shù)值”
SqlDataReader sdr = cmd.ExecuteReader();//執(zhí)行存儲(chǔ)過(guò)程
while (sdr.Read())
{
    Response.Write(sdr["UserName"].ToString());//輸出查詢(xún)到的值
}
sdr.Close();
conn.Close();

方法二:

復(fù)制代碼 代碼如下:
SqlConnection conn = new SqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();//打開(kāi)數(shù)據(jù)庫(kù)連接
SqlCommand cmd = new SqlCommand("proc_1", conn);//存儲(chǔ)過(guò)程名
cmd.CommandType = CommandType.StoredProcedure;//設(shè)置命令類(lèi)型為存儲(chǔ)過(guò)程
SqlParameter[] param = new SqlParameter[]{
   new SqlParameter("uid", SqlDbType.Int, 4),
   new SqlParameter("pwd", SqlDbType.VarChar,255),
};//定義參數(shù),這些是存儲(chǔ)過(guò)程中要調(diào)用的參數(shù),也可以通過(guò)直接使用cmd.AddWithValue方法添加參數(shù)
param[0].Value = 1;//給參數(shù)賦值
param[1].Value = "admin";
cmd.Parameters.AddRange(param);//一定要記得將剛定義的參數(shù)添加到cmd的參數(shù)中,不然前面的參數(shù)就白弄了。
string sname =(string)cmd.ExecuteScalar();//如果存儲(chǔ)過(guò)程返回的是單個(gè)值,我們可以直接這樣取出所要的值
Response.Write(sname);
sdr.Close();
conn.Close();

二、調(diào)用帶輸出參數(shù)的存儲(chǔ)過(guò)程

上面所講的只是調(diào)用輸入?yún)?shù)的存儲(chǔ)過(guò)程,下面大概講一下如何調(diào)用有輸出參數(shù)的存儲(chǔ)過(guò)程。

首先,我們先對(duì)之前的存儲(chǔ)過(guò)程修改一下,如下所示:

復(fù)制代碼 代碼如下:
create proc proc_1
@uid int,
@pwd varchar(255),
@UserName varchar(255) output --這里我們?cè)黾右粋€(gè)輸出變量,記得加上output
as
select @UserName=UserName from users where uid = @uid and PassWord = @pwd
go

--以下是在查詢(xún)分析器中調(diào)用的方法
declare @n varchar(255) --聲明一個(gè)變量用來(lái)傳遞參數(shù)
exec proc_1 1,admin,@n output --注,要標(biāo)記為output變量
print @n

下面我們看看在VS.NET 中的調(diào)用方式:

復(fù)制代碼 代碼如下:
SqlConnection conn = new SqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();
SqlCommand cmd = new SqlCommand("proc_1", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("uid", 1);
cmd.Parameters.AddWithValue("pwd", "admin");
cmd.Parameters.Add("username", SqlDbType.VarChar, 255);
cmd.Parameters["username"].Direction = ParameterDirection.Output;//設(shè)置參數(shù)為輸出參數(shù)
cmd.ExecuteNonQuery();
string sname = (string)cmd.Parameters["username"].Value;//獲取輸出參數(shù)的值
Response.Write(sname);
conn.Close();

這樣,便很簡(jiǎn)單的實(shí)現(xiàn)了調(diào)用存儲(chǔ)過(guò)程的方法。

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#泛型方法在lua中表示的一種設(shè)計(jì)詳解

    C#泛型方法在lua中表示的一種設(shè)計(jì)詳解

    這篇文章主要給大家介紹了關(guān)于C#泛型方法在lua中表示的一種設(shè)計(jì)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • C#獲取文件夾及文件的大小與占用空間的方法

    C#獲取文件夾及文件的大小與占用空間的方法

    這篇文章主要介紹了C#獲取文件夾及文件的大小與占用空間的方法,需要的朋友可以參考下
    2014-07-07
  • C#多線程系列之多線程鎖lock和Monitor

    C#多線程系列之多線程鎖lock和Monitor

    這篇文章介紹了C#多線程鎖lock和Monitor的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#使用自定義的泛型節(jié)點(diǎn)類(lèi)實(shí)現(xiàn)二叉樹(shù)類(lèi)

    C#使用自定義的泛型節(jié)點(diǎn)類(lèi)實(shí)現(xiàn)二叉樹(shù)類(lèi)

    這篇文章主要為大家詳細(xì)介紹了C#如何使用自定義的泛型節(jié)點(diǎn)類(lèi) Node<T>實(shí)現(xiàn)二叉樹(shù)類(lèi)BinaryTree<T>及其方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#筆記之EF Code First 數(shù)據(jù)模型 數(shù)據(jù)遷移

    C#筆記之EF Code First 數(shù)據(jù)模型 數(shù)據(jù)遷移

    EF 中 Code First 的數(shù)據(jù)遷移網(wǎng)上有很多資料,我這份并沒(méi)什么特別。Code First 創(chuàng)建視圖網(wǎng)上也有很多資料,但好像很麻煩,而且親測(cè)好像是無(wú)效的方法(可能是我太笨,沒(méi)搞成功),我摸索出了一種簡(jiǎn)單有效的方法,這里分享給大家
    2021-09-09
  • C#自定義畫(huà)刷原理解析

    C#自定義畫(huà)刷原理解析

    這篇文章主要為大家詳細(xì)介紹了C#自定義畫(huà)刷原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C# EF去除重復(fù)列DistinctBy方式

    C# EF去除重復(fù)列DistinctBy方式

    這篇文章主要介紹了C# EF去除重復(fù)列DistinctBy方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 淺談C#中Process類(lèi)的使用詳解

    淺談C#中Process類(lèi)的使用詳解

    本篇文章是對(duì)C#中Process類(lèi)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • unity3d?對(duì)接?workerman?實(shí)現(xiàn)聯(lián)機(jī)游戲功能

    unity3d?對(duì)接?workerman?實(shí)現(xiàn)聯(lián)機(jī)游戲功能

    workerman?是一款開(kāi)源高性能?PHP?應(yīng)用容器,他除了用于互聯(lián)網(wǎng)、即時(shí)通訊、APP?開(kāi)發(fā)、硬件通訊、智能家居、物聯(lián)網(wǎng)等領(lǐng)域的開(kāi)發(fā)外,這篇文章主要介紹了unity3d?對(duì)接?workerman?實(shí)現(xiàn)聯(lián)機(jī)游戲,需要的朋友可以參考下
    2022-10-10
  • .NET連接MongoDB數(shù)據(jù)庫(kù)實(shí)例教程

    .NET連接MongoDB數(shù)據(jù)庫(kù)實(shí)例教程

    這則小竅門(mén)將講述如何開(kāi)發(fā)一個(gè).NET應(yīng)用來(lái)連接Mongo數(shù)據(jù)庫(kù)并執(zhí)行多種操作。同時(shí)還稍微涉及了Mongo數(shù)據(jù)庫(kù)和多種命令
    2013-11-11

最新評(píng)論