在程式開發中,我們經常要做的事就是訪問資料庫.有時候會調用預存程序和DTS,下面就此給出例子來說明如何?
第一部分 調用預存程序(帶入參數和取得傳回值)
1.調用SQL Server的預存程序
假如我們有如下一個預存程序,很簡單的實現,只是將兩個傳進來值做加法處理然後返回
CREATE PROCEDURE AddMethoD
(
@returnvalue int OUTPUT, --返回結果
@Parameter_1 int, --參數一
@Parameter_2 int --參數二
)
AS
-----------------------------------------------
set @returnvalue = @Parameter_1 + @Parameter_2
RETURN @returnvalue
-------------------------------------------------
GO以下是在c#中調用此預存程序的代碼
private int TestProcedure()
{
System.Random rnd = new Random();
string constr = "Data Source=localhost;initial catalog=testdb;user id=sa;password=sa;connect timeout=3000";
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "AddMethod";
cmd.CommandType = CommandType.StoredProcedure;
//參數一
SqlParameter parameter_1 = new SqlParameter("@Parameter_1",SqlDbType.Int);
parameter_1.Direction = ParameterDirection.Input;
parameter_1.Value = (int)(rnd.NextDouble() * 100);
//參數二
SqlParameter parameter_2 = new SqlParameter("@Parameter_2",SqlDbType.Int);
parameter_2.Direction = ParameterDirection.Input;
parameter_2.Value = (int)(rnd.NextDouble() * 100);
//傳回值
SqlParameter returnValue = new SqlParameter("@returnValue",SqlDbType.Int);
returnValue.Direction = ParameterDirection.Output;
cmd.Parameters.Add(returnValue);
cmd.Parameters.Add(parameter_1);
cmd.Parameters.Add(parameter_2);
try
{
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
return (int)returnValue.Value;
}