Rox*_*ana 2 .net c# sql-server ado.net sql-server-2005
我有一个这样的存储过程:
CREATE PROCEDURE up_action
(@id int
,@group varchar(30)=''
,@nom varchar(30)=''
,@compte varchar(30)=NULL
)
AS
BEGIN
DECLARE @chrono int
......
select @date=date from users where compte=@compte
INSERT INTO dialog
(numappel,auteur,commentaire,etape,etapews,operant)
VALUES
(@numappel,@nomprenom,@dialogue,14,14,@nomoperateur)
SET @chrono = SCOPE_IDENTITY()
select 'chrono'=@chrono
END
Run Code Online (Sandbox Code Playgroud)
我想从一个用C#编写的应用程序中调用这个存储过程,可以将参数分隔开(实际上是它们的值),然后最后接收一个记录集rs,我可以从中获取变量的值,如rs ( "计时").
我知道创建每个参数并告诉类型,名称,值等的可能性.但我想要一个类似于ASP的方法因为我有100个参数的程序...
通常,使用POADO(Plain Old ADO.Net),您可以执行以下操作:
using (SqlConnection conn = new SqlConnection(myConnectionString))
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "up_action"
cmd.Parameters.AddWithValue("@group", group);
cmd.Parameters.AddWithValue("@nom", nom);
cmd.Parameters.AddWithValue("@compte", compte);
conn.Open();
using (SqlDataReader rd = cmd.ExecuteReader())
{
if (rd.Read())
{
chrono = rs["chrono"];
}
}
}
Run Code Online (Sandbox Code Playgroud)
但正如理查德所指出的那样:你确实最好看看像LINQ to SQL这样的东西,因为这会为每个存储过程生成一个方法(它会自动为你的存储过程的每个参数设置一个参数).有关更多信息,请参阅此链接.
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |