亚洲今日精彩视频_精品一级黄色_免费一级A片在现观看视频_8050福利视频 - 一级免费黄色片

7*24小時應急電話:15927160396
首頁 新聞資訊 技術文章
C# 調用sql 2000存儲過程
調用帶輸參數的存儲過程

     首先自然是在查詢分析器里創建一個存儲過程嘍~~   如下所示:
create proc proc_1
@uid int
,
@pwd varchar(255
)
as

select UserName from users where uid = @uid and PassWord = @pwd
go
 

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

     方法一:


Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

     方法二:


Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

 

     調用帶輸參數的存儲過程

     上面所講的只是調用輸入參數的存儲過程,下面大概講一下如何調用有輸出參數的存儲過程。

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


Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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

--以下是在查詢分析器中調用的方法
declare @n varchar(255--聲明一個變量用來傳遞參數
exec proc_1 1,admin,@n output --注,要標記為output變量
print @n

     下面我們看看在VS.NET 中的調用方式:


Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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;//設置參數為輸出參數
cmd.ExecuteNonQuery();
string sname = (string)cmd.Parameters["username"].Value;//獲取輸出參數的值
Response.Write(sname);
conn.Close();
版權所有:武漢網福互聯科技有限公司    鄂ICP備09022096號
業務QQ:23444550 客服QQ:267052100 電郵:23444550@qq.com  

鄂公網安備 42010602000905號

手機站二維碼