sqlserver获取存储过程返回值
1.OUPUT参数返回值
[sql] view plaincopyprint?
1. CREATE PROCEDURE [dbo].[nb_order_insert](
2. @o_buyerid int ,
3. @o_id bigint OUTPUT
4. )
5. AS
6. BEGIN
7. SET NOCOUNT ON;
8. BEGIN
9. INSERT INTO [Order](o_buyerid )
10. VALUES (@o_buyerid )
11. SET @o_id = @@IDENTITY
12. END
13. END
存储过程中获得方法:
DECLARE @o_buyerid int
DECLARE @o_id bigint
EXEC [nb_order_insert] @o_buyerid,@o_id output
2.RETURN过程返回值
CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_shopid))
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
RETURN 1 — 插入成功返回1
END
ELSE
RETURN 0 — 插入失败返回0
END
存储过程中的获取方法
DECLARE @o_buyerid int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id bigint
3.SELECT 数据集返回值
CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO
存储过程中的获取方法
(1)、使用临时表的方法
CREATE TABLE [dbo].[Temp](
[o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[o_buyerid] [int] NOT NULL
)
INSERT [Temp] EXEC [nb_order_select] @o_id
– 这时 Temp 就是EXEC执行SELECT 后的结果集
SELECT * FROM [Temp]
DROP [Temp] — 删除临时表
(2)、速度不怎么样.(不推荐)
SELECT * from openrowset(’provider_name','Trusted_Connection=yes’,'exec nb_order_select’)
1.获取Return返回值
//存储过程
//Create PROCEDURE MYSQL
// @a int,
// @b int
//AS
// return @a + @b
//GO
SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings[\"LocalSqlServer\"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand(\"MYSQL\
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter(\"@a\
MyCommand.Parameters[\"@a\"].Value = 10;
MyCommand.Parameters.Add(new SqlParameter(\"@b\
MyCommand.Parameters[\"@b\"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter(\"@return\
MyCommand.Parameters[\"@return\"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters[\"@return\"].Value.ToString());
2.获取Output输出参数值
//存储过程
//Create PROCEDURE MYSQL
// @a int,
// @b int,
// @c int output
//AS
// Set @c = @a + @b
//GO
SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings[\"LocalSqlServer\"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand(\"MYSQL\
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter(\"@a\
MyCommand.Parameters[\"@a\"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter(\"@b\
MyCommand.Parameters[\"@b\"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter(\"@c\
MyCommand.Parameters[\"@c\"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters[\"@c\"].Value.ToString());
C#接收存储过程返回值:
public static int User_Add(User us)
{
int iRet;
SqlConnection conn = new SqlConnection(Conn_Str);
SqlCommand cmd = new SqlCommand(\"User_Add\
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(\"@UName\
cmd.Parameters.AddWithValue(\"@UPass\
cmd.Parameters.AddWithValue(\"@PassQuestion\
cmd.Parameters.AddWithValue(\"@PassKey\
cmd.Parameters.AddWithValue(\"@Email\
cmd.Parameters.AddWithValue(\"@RName\
cmd.Parameters.AddWithValue(\"@Area\
cmd.Parameters.AddWithValue(\"@Address\
cmd.Parameters.AddWithValue(\"@ZipCodes\
cmd.Parameters.AddWithValue(\"@Phone\
cmd.Parameters.AddWithValue(\"@QQ\
cmd.Parameters.Add(\"@RETURN_VALUE\ParameterDirection.ReturnValue;
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (int)cmd.Parameters[\"@RETURN_VALUE\"].Value;
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
return iRet;
}
C#接收存储过程输出参数:
public static decimal Cart_UserAmount(int UID)
{
decimal iRet;
SqlConnection conn = new SqlConnection(Conn_Str);
SqlCommand cmd = new SqlCommand(\"Cart_UserAmount\
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(\"@UID\
cmd.Parameters.Add(\"@Amount\
SqlDbType.Decimal).Direction=ParameterDirection.Output;
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (decimal)cmd.Parameters[\"@Amount\"].Value;
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
return iRet;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务