程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 如何在aspx中得到在存儲過程中的的數值

如何在aspx中得到在存儲過程中的的數值

編輯:關於ASP.NET

這裡的存儲過程是在SQL Server 下的存儲過程,由於目前豆腐沒有使用存儲過程,所以豆腐在舉例子的時候
使用了SQL2K,估計在Oracle下應該也是一樣的,歡迎大家 和豆腐一起來探討這個問題
我們知道在存儲過程中有個被稱做output 的參數,他可以在不同的存儲過程之中互相的傳遞參數,在使用output 的時候
要注意下面的情況

OUTPUT 變量必須在創建表和使用該變量時都進行定義。參數名和變量名不一定要匹配,不過數據類型和參數位置必須匹配
我們創建一個最簡單的存儲過程
CREATE PROCEDURE test
(@subject Varchar(15) Output)
AS
select @subject='豆腐制作 都是精品'
GO
可是如何取得回掉的參數呢?白思不得其解,後來終於在SQL AnaLyzer 上得到了啟發,
DECLARE @aa Varchar(10)
execute test @aa output
select aa=@aa
根據這個,我們可在Asp.Net中利用ADO+的多語句處理功能來實現我們的設想,最終通過SQLDataReader 如同
Select 語句一樣來得到輸出,完整的程序如下。

<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<script language="C#" runat=server>
protected void Page_Load(Object Src, EventArgs E){
SQLDataReader dbRead;
SQLCommand dbComm;
String strSQL;
String strConn;
SQLConnection conn;
Hashtable Cfg=new Hashtable();
Cfg = (Hashtable)Context.GetConfig("appsettings");
strConn=Cfg["Conn"].ToString();
conn = new SQLConnection(strConn);
strSQL="DECLARE @aa Varchar(10)\nexecute test @aa output\nselect aa=@aa";
dbComm = new SQLCommand(strSQL, conn);
dbComm.ActiveConnection.Open();
dbComm.Execute(out dbRead);
dbRead.Read();
showmsg.Text=dbRead["aa"].ToString();
}
</script>
<html>
<head>
<title>測試存儲過程</title>
</head>
<body>
<asp:Label id=showmsg runat=server />
</body>
</html>
其實,豆腐在實際的應用中一般是很少使用output 參數的,豆腐一般都是這樣使用的:
存儲過程 的內容如下:
CREATE PROCEDURE test
AS
select @subject='豆腐制作 都是精品'
select aa=@subject
GO
就是在 存儲過程 的最後依據利用 Select 讓存儲過程返回一個記錄集合,然後我們就可以把這個存儲過程
看作是一個 select 語句來處理了,這樣下來,asp.Net 的SQL 語句就變成了
strSQL="test";
其他的內容都變化,一樣可以得到相同的效果.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved