C# i procedury na mssql 2000

0

Witam

  1. W jaki sposób z poziomu C# obsłużyć procedury przechowywane na serwerze mssql2000?

  2. W jaki sposób przekazać do c# wynik procedury serwera mssql np

    (procedura na sqrwerze sql)
    ..........
    if liczba > 1
      return 1
    else
      return 0

    W jaki sposób przekazać wynik 1 lub 0 do C#?

Bardzo proszę o przykłady z kodem.

0


SqlCommand vCommand = new SqlCommand("moja_procedura", JakiesPolaczenie);
vCommand.CommandType = CommandType.StoredProcedure;
vCommand.Parameters.AddWithValue("parametr1Procedury", 15);
vCommand.Execute...()



2. Procedury nie zwracaja wartosc (tylko funkcje). Uzyj zwyklego selecta w procedurze.
0

Przykład ze zwracaniem wartości przez argument:

T-SQL:

CREATE PROCEDURE [dbo].[usp_test] 
@out int output -- modyfikator output, aby zachować wartość zmiennej po zakończeniu procedury dla wywołującego
AS
begin
    set @out = 4

end
GO

C#:

SqlConnection   connection  = new SqlConnection("data source=localhost;Initial Catalog=northwind;user id=sa;password=password");

SqlParameter param = new SqlParameter("out", SqlDbType.Int);
param.Direction = ParameterDirection.Output;

SqlCommand  cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;          
cmd.Parameters.Add(param);
cmd.CommandText = "usp_test";
cmd.Connection = connection;

connection.Open();
cmd.ExecuteNonQuery();

MessageBox.Show(param.Value.ToString());

connection.Close();
0

A faktycznie, tak tez mozna :)

0

procedury zwracaja wartosci..

przerabiajac kod casual_coder'a

CREATE PROCEDURE [dbo].[usp_test] 
AS
begin
        select cokolwiek from skadkolwiek;
        return 4;
end
GO


SqlCommand cmd = new SqlCommand("usp_test", connection);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter result = cmd.Add("@return_value", SqlDbType.Int); //nazwa chyba moze byc dowolna
result.Direction = ParameterDirection.ReturnValue;

DataAdapter da = new DataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.fill(ds); // po tym mamy i wynik selecta w DS i returnvalue w RESULT



<b>disclaimer</b>: moga byc droben bledy, pisane z pamieci</b>

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0