天天看點

C#擷取存儲過程的 Return傳回值和Output輸出參數值

<b>1.擷取Return傳回值</b>

<b> </b>

<b></b>

C#擷取存儲過程的 Return傳回值和Output輸出參數值

 程式代碼

//存儲過程

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

<b>2.擷取Output輸出參數值</b>

C#擷取存儲過程的 Return傳回值和Output輸出參數值

//     @b int,

//     @c int output

//     Set @c = @a + @b

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

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

MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;

Response.Write(MyCommand.Parameters["@c"].Value.ToString());

---------------------------------------------------------------------------------------------------------------

以下代碼轉自網絡:

<b>C#<b>接收</b>存儲過程<b>傳回值</b>:</b>

     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("@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);

<b>         cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;</b>       

         try

         {

             conn.Open();

             cmd.ExecuteNonQuery();

<b>             iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;</b>

         }

         catch (SqlException ex)

             throw ex;

         finally

             conn.Close();

         return iRet;

     }

<b>C#<b>接收</b>存儲過程輸出<b>參數</b>:</b>

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

       <b> cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output;</b>

        try

        {

            conn.Open();

            cmd.ExecuteNonQuery();

            <b>iRet = (decimal)cmd.Parameters["@Amount"].Value;</b>

        }

        catch (SqlException ex)

            throw ex;

        finally

            conn.Close();

        return iRet;

    }

本文轉自黃聰部落格園部落格,原文連結:http://www.cnblogs.com/huangcong/archive/2010/05/18/1737852.html,如需轉載請自行聯系原作者