【发布时间】:2014-02-13 13:51:33
【问题描述】:
下面定义的是有两个插入语句的存储过程。
USE [RHK_HIS]
GO
/****** Object: StoredProcedure [dbo].[createuser] Script Date: 01/23/2014 11:50:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[createuser]
-- Add the parameters for the stored procedure here
( @User_Id varchar(15),
@Password varchar(15),
@Name varchar(30),
@Role_Id varchar(10),
@Department_Id varchar(10),
@Active varchar(1)
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
insert into User_M (User_Id,Password,Name,Role_Id,Department_Id,Active) values (@User_Id,@Password,@Name,@Role_Id,@Department_Id,@Active)
insert into User_Dept_Map(User_Id,Dept_Id) values (@User_Id,@Department_Id)
END
存储过程在 Connection.cs 中被下面指定的函数调用
public int create_user(UserMaster ua)
{
SqlConnection Con = new SqlConnection(str);
Con.Open();
SqlCommand Cmd = new SqlCommand("createuser", Con);
Cmd.CommandType = CommandType.StoredProcedure;
try
{
log.Debug("Inside Create user");
Cmd.Parameters.AddWithValue("@User_Id", ua.UserName);
Cmd.Parameters.AddWithValue("@Password", ua.Password);
Cmd.Parameters.AddWithValue("@Name", ua.Name);
Cmd.Parameters.AddWithValue("@Role_Id", ua.Role);
Cmd.Parameters.AddWithValue("@Department_Id", ua.Department);
Cmd.Parameters.AddWithValue("@Active", ua.Active);
log.Debug("Inside Create_User: New User created having ID: " + ua.UserName);
log.Info("user created");
return Cmd.ExecuteNonQuery();
}
catch (Exception e)
{
log.Debug("Error: Inside catch block of Create User");
log.Error("Error msg:" + e);
log.Error("Stack trace:" + e.StackTrace);
throw e;
}
finally
{
Cmd.Dispose();
Con.Close();
Con.Dispose();
}
}
这段代码工作正常,会将值插入两个不同的表,现在我的问题是如果I have two select statement of two different table in one stored procedure how to return the values in the function?? 我应该使用object 来返回吗?如果是这样如何创建object.?任何帮助表示赞赏
【问题讨论】:
-
你的意思是说你想从 bot hselect 语句中获取值?
-
是的。我想要两个 select 语句中的值。
标签: asp.net sql-server-2008 stored-procedures data-access-layer