C 呼叫sql2000儲存過程方法小結

2022-09-26 08:09:09 字數 2687 閱讀 4129

除錯環境:vs.net 2005,sql 2000,windows xp sp2。

語言:c#

一、呼叫帶輸入引數的儲存過程

首先自然是在查詢分析器裡建立乙個儲存過程嘍~~   如下所示:

複製** **如下:

create proc proc_1

@uid int,

@pwd varchar(255)

asselect username from users where uid = @uid a程式設計客棧nd password = @pwdgo 

接下來我們就來看下如何在vs 2005中使用c#呼叫這個儲存過程。

方法一:

複製** **如下:

sqlconnection conn = new sqlconnection("server=(local);database=sql1;uid=sa;pwd=");

conn.open();//開啟資料庫連線

sqlcommand cmd = new sqlcommand("exec proc_1 @uwww.cppcns.comid=1,@pwd=admin", conn);//command中寫呼叫儲存過程的語句

//大家應該看出來了和直接在查詢分析器中執行很類似,「exec 儲存過程名 @引數1=引數值,@引數2=引數值」

sqldatareader sdr = cmd.executereader();//執行儲存過程

while (sdr.read())

sdr.close();

conn.close();

方法二:

複製** **如下:

sqlconnection conn = new sqlconnection("server=(local);database=sql1;uid=sa;pwd=");

conn.open();//開啟資料庫連線

sqlcommand cmd = new sqlcommand("proc_1", conn);//儲存過程名

cmd.commandtype = commandtype.storedprocedure;//設定命令型別為儲存過程

sqlpar程式設計客棧ameter param = new sqlparameter;//定義引數,這些是儲存過程中要呼叫的引數,也可以通過直接使用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();

二、呼叫帶輸出引數的儲存過程

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

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

複製** **如下:

create proc proc_1

@uid int,

@pwd varchar(255),

@username varchar(255) output --這裡我們增加乙個輸出變數,記得加上output

asselect @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 中的呼叫方式:

複製** **如下:

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();

這樣,便很簡單的實現了呼叫儲存過程的方法。

本文標題: c#呼叫sql2000儲存過程方法小結

本文位址:

C 呼叫sql 2000儲存過程

今天又有朋友問起關於c 呼叫儲存過程的問題,發現自己好久沒用,竟然也忘得差不多了 本來想直接把以前那片拿過來的,但是感覺還是重新寫一下讓自己印象深刻點。除錯環境 vs.net 2005,sql 2000,windows xp sp2。語言 c 呼叫帶輸入引數的儲存過程 首先自然是在查詢分析器裡建立乙...

sql2000儲存過程

自 http www.cnblogs.com a13971240 archive 2008 10 22 1316747.html create proc getdataset tablelist varchar 200 搜尋表的字段,比如 id,datatime,job 用逗號隔開 tablenam...

sql2000儲存過程

create proc getdataset tablelist varchar 200 搜尋表的字段,比如 id,datatime,job 用逗號隔開 tablename varchar 30 搜尋的表名 selectwhere varchar 500 搜尋條件,這裡不用寫where,比如 job...