国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

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

2019-10-29 21:44:01
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C#調(diào)用sql2000存儲過程的方法,以實例形式分別對調(diào)用帶輸入?yún)?shù)及輸出參數(shù)的存儲過程進行了詳細分析,非常具有實用價值,需要的朋友可以參考下
 

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

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

語言:C#

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

首先自然是在查詢分析器里創(chuàng)建一個存儲過程嘍~~   如下所示:

 

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

 
接下來我們就來看下如何在VS 2005中使用C#調(diào)用這個存儲過程。

 

方法一:

 

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

 

方法二:

 

復(fù)制代碼代碼如下:
SqlConnection conn = new SqlConnection("server=(local);database=sql1;uid=sa;pwd=");
conn.Open();//打開數(shù)據(jù)庫連接
SqlCommand cmd = new SqlCommand("proc_1", conn);//存儲過程名
cmd.CommandType = CommandType.StoredProcedure;//設(shè)置命令類型為存儲過程
SqlParameter[] param = new SqlParameter[]{
   new SqlParameter("uid", SqlDbType.Int, 4),
   new SqlParameter("pwd", SqlDbType.VarChar,255), 
};//定義參數(shù),這些是存儲過程中要調(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();//如果存儲過程返回的是單個值,我們可以直接這樣取出所要的值
Response.Write(sname);
sdr.Close();
conn.Close();

 

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

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

首先,我們先對之前的存儲過程修改一下,如下所示:

 

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

 

--以下是在查詢分析器中調(diào)用的方法
declare @n varchar(255) --聲明一個變量用來傳遞參數(shù)
exec proc_1 1,admin,@n output --注,要標記為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();

 

這樣,便很簡單的實現(xiàn)了調(diào)用存儲過程的方法。

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新兴县| 潼关县| 青州市| 光泽县| 鄂尔多斯市| 扶绥县| 礼泉县| 玉溪市| 青州市| 宁远县| 东莞市| 衡阳县| 青田县| 阿拉尔市| 光泽县| 莱西市| 汉中市| 曲沃县| 皮山县| 那曲县| 咸丰县| 高州市| 滦南县| 江孜县| 肇源县| 余庆县| 长岛县| 烟台市| 新乡市| 镇康县| 拉萨市| 达尔| 乌恰县| 尼勒克县| 永年县| 厦门市| 荔波县| 沙河市| 长宁区| 福州市| 清流县|