Enterprise Library 2.0系列:添加一条记录之后,再获取这条记录
Sql存储过程示例:
C#代码示例:
运行结果:
/* -------------------- 运行结果 ------------------------
主键:5
姓名:黄琴
地址:IBM ThinkPad 制造
城市:深圳
国家:中国
邮编:518000
-------------------------------------------------------- */
笔记:
1、调用 ExecuteReader 的同时,也会执行 Insert 语句。
2、使用该方法,很方便的调用存储过程。缺点是不能获取 ReturnValue 值。
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
(
@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();
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
)
string storedProcedureName,
params Object[] parameterValues
)