4 Stimmen

Wie kann man die Parameter von SQL Server Stored Procedure zur Laufzeit in .NET bestimmen?

Gibt es eine Möglichkeit für eine Anwendung, die Parameter und Parametertypen einer gespeicherten Prozedur während der Laufzeit zu bestimmen?

5voto

womp Punkte 113535

ADO.Net verfügt über diese Funktionalität. Sie werden Folgendes verwenden wollen

SqlCommandBuilder.DeriveParameters(mySqlCommand)

Dies füllt Ihre SqlCommand Objekt, "mySqlCommand", mit dem Namen und Typ der Parameter. Allerdings ist dafür ein zusätzlicher Aufruf der Datenbank erforderlich.

Es gibt ein paar Anleitungen im Internet, wenn Sie danach googeln. 4Guys hat eine aquí .

0 Stimmen

Vielen Dank, die 4guys Link deckt, was Im versucht zu erreichen, ein dynamisches Reporting-Tool, basierend auf gespeicherten Verfahren

1voto

SQLMenace Punkte 128184

Nein, aber Sie können sie aus information_schema.parameters abrufen

Beispielverfahren

create procedure prtest
@id int,
@name varchar(200),
@value decimal(20,10)
as
select 'bla'

go

Führen Sie nun diese Abfrage aus

select parameter_name,data_type,* from information_schema.parameters
where specific_name = 'prtest'
order by ordinal_position

Ausgabe

@id int
@name   varchar
@value  decimal

Sie müssen die Größen immer noch aus CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION, NUMERIC_SCALE beziehen.

0voto

Scott Ivey Punkte 39470

Ja, das können Sie, indem Sie die AbleitenParameter Methode der SqlCommandBuilder Klasse...

using (var conn = new SqlConnection(myConnectionString))
using (var cmd = new SqlCommand("dbo.MyStoredProc", conn))
{
    conn.Open();
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    SqlCommandBuilder.DeriveParameters(cmd);

    foreach (SqlParameter item in cmd.Parameters)
    {
        Console.WriteLine(item.ParameterName);
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X