2009-03-11 35 views

Trả lời

10

Bạn có thể sử dụng phương thức SqlCommandBuilder.DeriveParameters để trả về thông tin về các tham số liên kết với một thủ tục được lưu trữ. Iterating qua các bộ sưu tập sẽ cho phép bạn xác định tên tham số, kiểu dữ liệu, hướng vv

SqlCommand cmd = new SqlCommand(); 
SqlConnection conn = new SqlConnection("myConnectionString"); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "myStoredProcName"; 
cmd.Connection = conn; 

conn.Open(); 
SqlCommandBuilder.DeriveParameters(cmd); 
conn.Close(); 

SqlParameterCollection collection = cmd.Parameters; 

Hãy nhìn vào các định nghĩa SqlParameterCollectionSqlParameter lớp để biết thêm thông tin.

+0

tuyệt vời - cảm ơn, đó là rất hữu ích để biết. –

0

Tôi không có VS.NET để thử nó ra, nhưng .Prepare() có thể làm điều này cho bạn :)

Hoặc bạn chỉ có thể thêm các thông số. :)

1

Tôi không chắc chắn nếu bạn có thể làm điều đó trong môi trường ADO.NET trực tiếp, bằng cách nào đó - nhưng bạn luôn có thể truy vấn "sys" hệ thống quan điểm để có được thông tin rằng:

select * from sys.parameters 
where object_id in 
     (select object_id from sys.procedures where name = 'YourSProc') 

Marc

0

Và cũng với:

EXEC sp_sproc_columns 'YourSProc' 
Các vấn đề liên quan