如何使用儲存過程output引數
阿新 • • 發佈:2018-12-30
儲存過程程式碼如下:
- ALTER PROCEDURE dbo.testOutput
- (
- @p1 int ,
- @p2 int OUTPUT,
- @p3 int
- )
- AS
- /* SET NOCOUNT ON */
- select @p2 = count(*) from testProc where testid between @p1 and @p3
- RETURN @@rowcount
這個儲存過程返回2個值,一個是output型引數@p2,另外一個是資料庫自帶的return值 @@rowcount(語句所影響的行數)。
C#程式:
- SqlCommand com =
- com.CommandType = CommandType.StoredProcedure;
- SqlParameter p1 = new SqlParameter("@p1",SqlDbType.Int);
- SqlParameter p2 = new SqlParameter("@p2",SqlDbType.Int);
- SqlParameter p3 = new SqlParameter("@p3",SqlDbType.Int);
- SqlParameter rowcount =
- p1.Value = int.Parse(textBox2.Text);
- p2.Direction = ParameterDirection.Output; //把p2設定為output型引數
- p3.Value = int.Parse(textBox3.Text);
- rowcount.Direction = ParameterDirection.ReturnValue;//把rowcount類////型設定為returnvalue型
- com.Parameters.Add(p1);
- com.Parameters.Add(p2);
- com.Parameters.Add(p3);
- com.Parameters.Add(rowcount);
- com.ExecuteNonQuery();
- MessageBox.Show(p2.Value.ToString()); //執行過儲存過程以後,output引數p2和@@rowcount就自動返回了值。
- MessageBox.Show(rowcount.Value.ToString());