Enterprise Library 2.0系列:添加一条记录之后,再获取这条记录

Sql存储过程示例:
    ALTER PROCEDURE dbo.AddCustomer
    (
        
@Name nvarchar(30),
        
@Address nvarchar(60),
        
@City nvarchar(15),
        
@Country nvarchar(15),
        
@PostalCode nvarchar(10)
    ) 
    
AS
        
        
Insert Into
            Customers (Name, Address, City, Country, PostalCode)
        
values
            (
@Name@Address@City@Country@PostalCode)
            
        
Select *
            
From Customers
        
Where 
            CustomerID 
= @@IDENTITY
        
        
RETURN

C#代码示例:
string sName = "黄琴";
string sAddress = "IBM ThinkPad 制造";
string sCity = "深圳";
string sCountry = "中国";
string sPostalCode = "518000";

Database db 
= DatabaseFactory.CreateDatabase("CS_QuickStarts");
object[] oParaVals = new object[]{sName, sAddress, sCity, sCountry, sPostalCode}// 存储过程的参数值
using (IDataReader dr = db.ExecuteReader("AddCustomer", oParaVals))
{
    
while (dr.Read())
    
{
        Response.Write(
"<br />主键:" + dr["CustomerID"]);
        Response.Write(
"<br />姓名:" + dr["Name"]);
        Response.Write(
"<br />地址:" + dr["Address"]);
        Response.Write(
"<br />城市:" + dr["City"]);
        Response.Write(
"<br />国家:" + dr["Country"]);
        Response.Write(
"<br />邮编:" + dr["PostalCode"]);
    }

}


Response.End();


运行结果:
    
    
/* -------------------- 运行结果 ------------------------

    主键:5
    姓名:黄琴
    地址:IBM ThinkPad 制造
    城市:深圳
    国家:中国
    邮编:518000

    -------------------------------------------------------- 
*/



 笔记:
 1、调用 ExecuteReader 的同时,也会执行 Insert 语句。
 2、使用该方法,很方便的调用存储过程。缺点是不能获取 ReturnValue 值。
public IDataReader ExecuteReader (
    
string storedProcedureName,
    
params Object[] parameterValues
)
posted @ 2006-09-08 17:30  jeky  阅读(695)  评论(0编辑  收藏  举报
友情链接:逗死了笑话网 | 网络记事本