2009-07-13 2 views

Antwort

5

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

SqlCommandBuilder.DeriveParameters(mySqlCommand)

Dies wird bevölkern Ihr SqlCommand Objekt „MySqlCommand“, mit dem Namen und den Typ der Parameter verwenden möchten. Es erfordert jedoch einen zusätzlichen Aufruf der Datenbank.

Es gibt ein paar Walkthroughs im Internet, wenn Sie für sie googeln. 4Guys hat eine here.

+0

Vielen Dank, Die 4guys Link deckt, was Im, ein dynamisches Reporting-Tool, um zu achive versucht, basierend auf Stored Procedures –

1

nein, aber man kann es von information_schema.parameters

Beispielverfahren

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

go 

jetzt bekommen diese Abfrage ausführen

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

Ausgang

@id int 
@name varchar 
@value decimal 

Sie st ill müssen die Größen von CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE erhalten

0

Ja, Sie können mit Hilfe der DeriveParameters 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); 
    } 
} 
Verwandte Themen