數據庫組件 Hxj.Data (八)(存儲過程篇)

上一節講述的sql語句的執行,本節將講述的是存儲過程的執行。

執行存儲過程是通過FromProc方法來完成的。

執行無參數存儲過程如下:

DbSession.Default.FromProc("Ten Most Expensive Products").ToDataTable();

"Ten Most Expensive Products"就是存儲過程名稱。

 

執行帶參數的存儲過程:

DbSession.Default.FromProc("Sales by Year")
.AddInParameter("Beginning_Date", DbType.DateTime, "1995-01-01")
.AddInParameter("Ending_Date", DbType.DateTime, "1996-12-01")
.ToDataTable();

數據庫中該存儲過程

create procedure "Sales by Year" 
@Beginning_Date DateTime, @Ending_Date DateTime AS
SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy,ShippedDate) AS Year
FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date

GO
有兩個參數,分別是Beginning_Date和Ending_Date。
 
存儲過程和sql語句的執行類似,不過存儲過程多了參數,就是會有輸入輸出參數。
 
通過
AddInputOutputParameter  方法添加輸入輸出參數
AddOutParameter  方法添加輸出參數
AddReturnValueParameter  方法添加返回參數
 
返回參數值,示例如下:
ProcSection proc = DbSession.Default.FromProc("testoutstore")
     .AddInParameter("in1", System.Data.DbType.Int32, 1)
     .AddOutParameter("out1", System.Data.DbType.Int32)
     .AddOutParameter("out2", System.Data.DbType.String,100);

proc.ExecuteNonQuery();

Dictionary<string, object> returnValue = proc.GetReturnValues();

foreach (KeyValuePair<string, object> kv in returnValue)
{
    Response.Write("ParameterName:" + kv.Key + "    ;ReturnValue:" + Convert.ToString(kv.Value));
    Response.Write("
"
); }
其中GetReturnValues()方法就是回去返回值。
 
 
存儲過程的執行也是很簡單的。
 
 
下一節將講述DbSession的其他簡單輔助方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章