.net+oracle+crystalReports開發web應用程序學習筆記(二)
2024-07-10 12:59:22
供稿:網友
上次提到基本的配置注意問題,現在開始實際開發oracle中的問題
一 oracle 數據庫的連接
但你裝了oracle的客戶端,在配置時就已經指定了數據庫服務器,所以連接時主要由三個元素就可以連接上數據庫,數據庫的名稱(即sid),用戶名,密碼
sqlconnection con=new sqlconnection("provider=msdaora.1;user id=userid;data source=xf;password=password")
而sql server不需要安裝客戶端,所以必須指定服務器,和數據庫名
sqlconnection con=new sqlconnection("workstation id=xiaofeng;packet size=4096;user id=sa;integrated security=sspi;data source=xiaofeng;persist security info=false;initial catalog=xf");
二 在oracle中運行包(package)中的函數和存儲過程。
舉個例子,要運行下面一個sql語句:"select order_no,inventory_part_api.get_description(contract,part_no),part_no from shop_ord where inventory_part_api.get_description(contract,part_no) like '%喜之郎25%果凍%'";
1.在.net設計中(如設計sqldataadapter)不能夠直接使用包中的函數和存儲過程,如果要使用,可以在設計時把包中要使用的函數和存儲過程copy過來再設計時聲明一遍,就可以使用
2.在.net運行時直接添加代碼,系統會直接去尋中包中的內容
string strcommand;
strcommand="select order_no,inventory_part_api.get_description(contract,part_no),part_no from shop_ord where inventory_part_api.get_description(contract,part_no) like '%喜之郎25%果凍%'";
oledbconnection con=new oledbconnection("provider=msdaora.1;password=password;user id=userid;data source=xf");
con.open();
oledbdataadapter adapter=new oledbdataadapter(strcommand,con);
dataset dataset = new dataset();
adapter.fill(dataset);
this.datagrid1.datasource=dataset;
datagrid1.databind();
con.close();
3.怎么使用存儲過程
oracleconnection conn = new oracleconnection("data source=oracle8i;integrated security=yes");
conn.open;
oraclecommand cmd = conn.createcommand();
cmd.commandtext = "sp_pkg.getdata";
cmd.commandtype = commandtype.storedprocedure;
cmd.parameters.add(new oracleparameter("a1", oracletype.cursor)).direction = parameterdirection.output;
cmd.parameters.add(new oracleparameter("a2", oracletype.cursor)).direction = parameterdirection.output;
dataset ds = new dataset();
oracledataadapter adapter = new oracledataadapter(cmd);
adapter.fill(ds);