您的位置:首页 > 数据库

数据库组件 Hxj.Data (八)(存储过程篇)

2010-01-25 17:01 411 查看
上一节讲述的sql语句的执行,本节将讲述的是存储过程的执行。

执行存储过程是通过FromProc方法来完成的。

执行无参数存储过程如下:

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

[/code]

"Ten Most Expensive Products"就是存储过程名称。

 

执行带参数的存储过程:

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


[/code]

数据库中该存储过程

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("<br />");
}



其中GetReturnValues()方法就是回去返回值。

 

 

存储过程的执行也是很简单的。

 

 

下一节将讲述DbSession的其他简单辅助方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: