簡體   English   中英

如何從C#中的存儲過程中獲取設置值

[英]How To Get Set Value From Stored procedure in C#

我有一個客戶端提供給我的存儲過程

喜歡:

ALTER Proc [dbo].[XYZ]
    @Parameter varchar(100),
    @Parameter1 nvarchar(4000) out

   SET @APIString = "Test Test"

我無權更改此程序。

當我通過C#執行過程時,我從過程中得到一個字符串

如何在我的項目中獲取@Parameter1值?

C#代碼:

SqlCommand cmd = new SqlCommand("dbo.XYZ", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Parameter", Parameter);

cmd.Parameters.Add("@Parameter1", SqlDbType.VarChar,4000);
cmd.Parameters["@Parameter1"].Direction = ParameterDirection.Output;

conn.Open();

SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    String = reader["@Parameter1"] != null ? reader["@Parameter1"].ToString() : "";
}

conn.Close();

@Parameter1是輸出參數。 您可以像設置輸入參數的值一樣獲取其值,例如

var cmd = new SqlCommand("dbo.XYZ", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Parameter", inputValue);

// add the output parameter
cmd.Parameters.Add("@Parameter1", SqlDbType.NVarChar).Direction =
    ParameterDirection.Output;

cmd.ExecuteNonQuery();

string parameter1 = (string)cmd.Parameters["@Parameter1"].Value;

除非存儲過程使用select語句返回值,否則還應使用ExecuteNonQuery

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM