C#調(diào)用sql2000存儲(chǔ)過程方法小結(jié)
本文實(shí)例總結(jié)了C#調(diào)用sql2000存儲(chǔ)過程方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
調(diào)試環(huán)境:VS.NET 2005,SQL 2000,WINDOWS XP sp2。
語(yǔ)言:C#
一、調(diào)用帶輸入?yún)?shù)的存儲(chǔ)過程
首先自然是在查詢分析器里創(chuàng)建一個(gè)存儲(chǔ)過程嘍~~ 如下所示:
@uid int,
@pwd varchar(255)
as
select UserName from users where uid = @uid and PassWord = @pwd
go
接下來我們就來看下如何在VS 2005中使用C#調(diào)用這個(gè)存儲(chǔ)過程。
方法一:
conn.Open();//打開數(shù)據(jù)庫(kù)連接
SqlCommand cmd = new SqlCommand("exec proc_1 @uid=1,@pwd=admin", conn);//Command中寫調(diào)用存儲(chǔ)過程的語(yǔ)句
//大家應(yīng)該看出來了和直接在查詢分析器中執(zhí)行很類似,“exec 存儲(chǔ)過程名 @參數(shù)1=參數(shù)值,@參數(shù)2=參數(shù)值”
SqlDataReader sdr = cmd.ExecuteReader();//執(zhí)行存儲(chǔ)過程
while (sdr.Read())
{
Response.Write(sdr["UserName"].ToString());//輸出查詢到的值
}
sdr.Close();
conn.Close();
方法二:
conn.Open();//打開數(shù)據(jù)庫(kù)連接
SqlCommand cmd = new SqlCommand("proc_1", conn);//存儲(chǔ)過程名
cmd.CommandType = CommandType.StoredProcedure;//設(shè)置命令類型為存儲(chǔ)過程
SqlParameter[] param = new SqlParameter[]{
new SqlParameter("uid", SqlDbType.Int, 4),
new SqlParameter("pwd", SqlDbType.VarChar,255),
};//定義參數(shù),這些是存儲(chǔ)過程中要調(diào)用的參數(shù),也可以通過直接使用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ǔ)過程返回的是單個(gè)值,我們可以直接這樣取出所要的值
Response.Write(sname);
sdr.Close();
conn.Close();
二、調(diào)用帶輸出參數(shù)的存儲(chǔ)過程
上面所講的只是調(diào)用輸入?yún)?shù)的存儲(chǔ)過程,下面大概講一下如何調(diào)用有輸出參數(shù)的存儲(chǔ)過程。
首先,我們先對(duì)之前的存儲(chǔ)過程修改一下,如下所示:
@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
--以下是在查詢分析器中調(diào)用的方法
declare @n varchar(255) --聲明一個(gè)變量用來傳遞參數(shù)
exec proc_1 1,admin,@n output --注,要標(biāo)記為output變量
print @n
下面我們看看在VS.NET 中的調(diào)用方式:
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ǔ)過程的方法。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#獲取存儲(chǔ)過程返回值和輸出參數(shù)值的方法
- C#中常用的分頁(yè)存儲(chǔ)過程小結(jié)
- c#中兩種不同的存儲(chǔ)過程調(diào)用與比較
- C# 調(diào)用存儲(chǔ)過程簡(jiǎn)單完整的實(shí)例代碼
- c#調(diào)用存儲(chǔ)過程實(shí)現(xiàn)登錄界面詳解
- mssql 存儲(chǔ)過程調(diào)用C#編寫的DLL文件
- C#中調(diào)用MySQL存儲(chǔ)過程的方法
- C#調(diào)用Oracle存儲(chǔ)過程的方法
- C# DatagridView常用操作匯總
- C# Datagridview綁定List方法代碼
- C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法
- C#執(zhí)行存儲(chǔ)過程并將結(jié)果填充到GridView的方法
相關(guān)文章
C#更新文本框textbox數(shù)據(jù)同時(shí)刪除舊數(shù)據(jù)問題
這篇文章主要介紹了C#更新文本框textbox數(shù)據(jù)同時(shí)刪除舊數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
本文主要介紹了C#中利用GDI來繪制圖形和文字的方法,并提供的簡(jiǎn)單的示例供大家參考學(xué)習(xí),希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2016-03-03
Unity3D實(shí)現(xiàn)射線使物體移動(dòng)
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)射線使物體移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
如何用C#找出數(shù)組中只出現(xiàn)了一次的數(shù)字
數(shù)組從字面上理解就是存放一組數(shù),下面這篇文章主要給大家介紹了關(guān)于如何用C#找出數(shù)組中只出現(xiàn)了一次的數(shù)字,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
C#異常處理中try和catch語(yǔ)句及finally語(yǔ)句的用法示例
這篇文章主要介紹了C#異常處理中try和catch語(yǔ)句及finally語(yǔ)句的用法示例,finally語(yǔ)句的使用涉及到了C#的垃圾回收特性,需要的朋友可以參考下2016-02-02
C# newtonsoft.json中文亂碼問號(hào)的解決方案
這篇文章主要介紹了C# newtonsoft.json中文亂碼問號(hào)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07最新評(píng)論

