下面以呼叫: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...