2

次のようなストアド プロシージャから 0 と 1 を返しています。c# asp.net ファイルで取得するにはどうすればよいですか?

ALTER procedure [dbo].[crudprocedure] 

    @getusername        varchar(20),
    @getfirstname       varchar(20),
    @getlastname        varchar(20),
    @getaddress         varchar(20)
 as 
 begin
IF not exists (select username from crudtable where username=@getusername)
begin 
insert into crudtable(username,firstname,lastname,address) 
values (@getusername,@getfirstname,@getlastname,@getaddress)
return 0
end
else
return 1
end
4

1 に答える 1

1

SQL Server を使用している場合は、次のコードを試してください。

using (SqlConnection conn = new SqlConnection("...put your connection string here..."))
using (SqlCommand cmd = new SqlCommand("dbo.crudprocedure", conn))
{
   cmd.CommandType = CommandType.StoredProcedure;

   cmd.Parameters.Add("@getusername", SqlDbType.VarChar, 20).Value = "test";
   cmd.Parameters.Add("@getfirstname", SqlDbType.VarChar, 20).Value = "test";
   cmd.Parameters.Add("@getlastname", SqlDbType.VarChar, 20).Value = "test";
   cmd.Parameters.Add("@getaddress", SqlDbType.VarChar, 20).Value = "test";

   // define additional paramter of Direction = ReturnValue
   cmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;

   // open connection, execute stored proc, close connection
   conn.Open();
   cmd.ExecuteNonQuery();
   conn.Close();

   // fetch the value of the "ReturnValue" parameter
   int returnValueInt = Convert.ToInt32(cmd.Parameters["RETURN_VALUE"].Value);
}

基本的に、ストアド プロシージャを使用してその値を送り返すため、 ofを持つオブジェクトRETURN 1に追加のパラメーターを追加する必要があります。SqlCommand.DirectionParameterDirection.ReturnValue

そのパラメータは、ストアド プロシージャから送り返す値に設定されます。RETURN ....

于 2012-07-26T13:32:49.517 に答える