C 呼叫儲存過程

2021-09-23 18:56:31 字數 2964 閱讀 5827

下面以呼叫:sql server 分頁儲存過程為例

呼叫**如下:

string myconn = "server=資料庫伺服器ip;uid=資料庫使用者名稱;pwd=密碼;database=資料庫名稱;trusted_connection=no";

sqlconnection myconnection = new sqlconnection(myconn);

sqldataadapter da = new sqldataadapter();

da.selectcommand = new sqlcommand();

da.selectcommand.connection = myconnection;

da.selectcommand.commandtext = "proc_listpageint";

da.selectcommand.commandtype = commandtype.storedprocedure;

idataparameter parameters = ;

// 設定引數型別

parameters[0].direction = parameterdirection.input;// 設定為輸入引數

parameters[0].value = "sysobjects";

parameters[1].direction = parameterdirection.input;// 設定為輸入引數

parameters[1].value = "*";

parameters[2].direction = parameterdirection.input;// 設定為輸入引數

parameters[2].value =20;

parameters[3].direction = parameterdirection.input;// 設定為輸入引數

parameters[3].value = 1;

parameters[4].direction = parameterdirection.output;// 設定為輸出引數

parameters[5].direction = parameterdirection.output;// 設定為輸出引數

parameters[6].direction = parameterdirection.input;// 設定為輸入引數

parameters[6].value = "id";

parameters[7].direction = parameterdirection.input;// 設定為輸入引數

parameters[7].value = 0;

parameters[8].direction = parameterdirection.input;// 設定為輸入引數

parameters[8].value = "";

parameters[9].direction = parameterdirection.input;// 設定為輸入引數

parameters[9].value = "id";

parameters[10].direction = parameterdirection.input;// 設定為輸入引數

parameters[10].value =0;

da.selectcommand.parameters.add(parameters[0]);

da.selectcommand.parameters.add(parameters[1]);

da.selectcommand.parameters.add(parameters[2]);

da.selectcommand.parameters.add(parameters[3]);

da.selectcommand.parameters.add(parameters[4]);

da.selectcommand.parameters.add(parameters[5]);

da.selectcommand.parameters.add(parameters[6]);

da.selectcommand.parameters.add(parameters[7]);

da.selectcommand.parameters.add(parameters[8]);

da.selectcommand.parameters.add(parameters[9]);

da.selectcommand.parameters.add(parameters[10]);

myconnection.open();

呼叫儲存過程的東東已經搞定了,那麼怎麼獲取dataset呢?

方法一:

sqldataadapter dp = new sqldataadapter(da.selectcommand);

dataset ds = new dataset();

dp.fill(ds);

方法二:

sqldatareader reader = da.selectcommand.executereader();//讀取資料 

dataset ds = this.convertdatareadertodataset(reader);

myconnection.close();

執行結果如下:

與在資料庫中執行的結果一致。

那麼新的問題來了,如果獲取儲存過程的返回引數呢?

比如獲取pagecount,**如下:

int pagecount = int.parse(da.selectcommand.parameters["@pagecount"].value.tostring());
小注datareader轉dataset方法

C 呼叫儲存過程

string sconnectionstring server local sqlexpress database forum trusted connection true 04 using sqlconnection conn new sqlconnection sconnectionstrin...

C 呼叫儲存過程

這次專案的數量級在1000萬,所以需要對資料的操作進行優化,儲存過程可以大大減少資料通訊量,其他的優化倒不知道在 有優化的地方 首先要在sqlserver裡面新建儲存過程 右鍵新建即可 使用的命令是 create proc your proc name create proc dbo doinser...

c 呼叫儲存過程

public partial class proceduretest system.web.ui.page 只返回單一記錄集的儲存過程getuseraccount publicvoid rungetuseraccount 沒有輸入輸出的儲存過程inuseraccount publicvoid run...