1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 获取存储过程返回值及代码中获取返回值

获取存储过程返回值及代码中获取返回值

时间:2019-05-16 08:38:01

相关推荐

获取存储过程返回值及代码中获取返回值

获取存储过程返回值及代码中获取返回值1.OUPUT参数返回值

例: 向Order表插入一条记录,返回其标识

CREATEPROCEDURE[dbo].[nb_order_insert](

@o_buyeridint,

@o_idbigintOUTPUT

)

AS

BEGIN

SETNOCOUNTON;

BEGIN

INSERTINTO[Order](o_buyerid)

VALUES(@o_buyerid)

SET@o_id=@@IDENTITY

END

END

存储过程中获得方法:

DECLARE@o_buyeridint

DECLARE@o_idbigint

EXEC[nb_order_insert]@o_buyerid,o_idbigint

2.RETURN过程返回值

CREATEPROCEDURE[dbo].[nb_order_insert](

@o_buyeridint,

@o_idbigintOUTPUT

)

AS

BEGIN

SETNOCOUNTON;

IF(EXISTS(SELECT*FROM[Shop]WHERE[s_id]=@o_shopid))

BEGIN

INSERTINTO[Order](o_buyerid)

VALUES(@o_buyerid)

SET@o_id=@@IDENTITY

RETURN1—插入成功返回1

END

ELSE

RETURN0—插入失败返回0

END

存储过程中的获取方法

DECLARE@o_buyeridint

DECLARE@o_idbigint

DECLARE@resultbit

EXEC@result=[nb_order_insert]@o_buyerid,o_idbigint

3.SELECT 数据集返回值

CREATEPROCEDURE[dbo].[nb_order_select](

@o_idint

)

AS

BEGIN

SETNOCOUNTON;

SELECTo_id,o_buyeridFROM[Order]

WHEREo_id=@o_id

GO

存储过程中的获取方法

(1)、使用临时表的方法

CREATETABLE[dbo].[Temp](

[o_id][bigint]IDENTITY(1,1)NOTFORREPLICATIONNOTNULL,

[o_buyerid][int]NOTNULL

)

INSERT[Temp]EXEC[nb_order_select]@o_id

–这时Temp就是EXEC执行SELECT后的结果集

SELECT*FROM[Temp]

DROP[Temp]—删除临时表

(2)、速度不怎么样.(不推荐)

SELECT*fromopenrowset(’provider_name','Trusted_Connection=yes’,'execnb_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", conn);

mandType = CommandType.StoredProcedure;

MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));

MyCommand.Parameters["@a"].Value = 10;

MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));

MyCommand.Parameters["@b"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));

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", conn);

mandType = CommandType.StoredProcedure;

MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));

MyCommand.Parameters["@a"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));

MyCommand.Parameters["@b"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));

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", conn);

mandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@UName", us.UName);

cmd.Parameters.AddWithValue("@UPass", us.UPass);

cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);

cmd.Parameters.AddWithValue("@PassKey", us.PassKey);

cmd.Parameters.AddWithValue("@Email", us.Email);

cmd.Parameters.AddWithValue("@RName", us.RName);

cmd.Parameters.AddWithValue("@Area", us.Area);

cmd.Parameters.AddWithValue("@Address", us.Address);

cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);

cmd.Parameters.AddWithValue("@Phone", us.Phone);

cmd.Parameters.AddWithValue("@QQ", us.QQ);

cmd.Parameters.Add("@RETURN_VALUE", "").Direction = 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", conn);

mandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@UID", 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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。