关闭

C#获取存储过程的Return返回值和Output输出参数值

437人阅读 评论(0) 收藏 举报

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);

MyCommand.CommandType = 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);

MyCommand.CommandType = 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#接收存储过程return返回值:

public static int User_Add(User us)

{

int iRet; SqlConnection conn = new SqlConnection(Conn_Str);

SqlCommand cmd = new SqlCommand("User_Add", conn);

cmd.CommandType = CommandType.StoredProcedure;

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

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);

 cmd.CommandType = 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; }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:431415次
    • 积分:5088
    • 等级:
    • 排名:第5448名
    • 原创:93篇
    • 转载:75篇
    • 译文:1篇
    • 评论:39条
    最新评论