[C#] Работа с БД
When you set the CommandType to StoredProcedure, you should set the CommandText property to the name of the stored procedure. The command executes this stored procedure when you call one of the Execute methods.
msdn (С) 2005
msdn (С) 2005
Короче есть такoй код:
SqlConnection conn = new SqlConnection("...");
SqlCommand cmd = new SqlCommand ("my_stored_proc", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParametr par = cmd.parametrs.Add("@value", SqlDbType.Int]);
par.Direction = ParameterDirection.Output;
cmd.ExecutionNonQuery;
int rez = (int) par.Value;
Что мне надо изменить в этом коде, чтобы выходной параметр стал DataSet? (Естественно, rez я объявлю как DataSet
)
SqlConnection conn = new SqlConnection("...");
SqlCommand cmd = new SqlCommand ("my_stored_proc", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParametr par = cmd.parametrs.Add("@value", SqlDbType.Int]);
par.Direction = ParameterDirection.Output;
cmd.ExecutionNonQuery;
int rez = (int) par.Value;
Что мне надо изменить в этом коде, чтобы выходной параметр стал DataSet? (Естественно, rez я объявлю как DataSet
)надо заглянуть в мсдн
DataAdapter.Fill
DataAdapter.Fill
в ms sql для получения на выз\ходе рекордсета/датасета не нужно создавать out-параметры
На самом деле БД Oracle . Если я соединяюсь с БД через DataAdapter, то как мне привязать сюда мою хранимую процедуру?
ну тогда надо задать параметр ref cursor
ref cursor это тип в oracle! А в написанном коде мне что поменять?
например для процы
procedure GetIRFList( pcr_List out sys_refcursor,
..................
)
is
begin
open pcr_List for
select IRF_ID, .... лалала
нужно добавить параметр с типом OracleType.Cursor и вызвать OracleDataAdapter.Fill.
OracleCommand)command).Parameters.Add("pcr_List", OracleType.Cursor).Direction = ParameterDirection.Output;
Кстати у тебя оракловый провайдер какой ?
procedure GetIRFList( pcr_List out sys_refcursor,
..................
)
is
begin
open pcr_List for
select IRF_ID, .... лалала
нужно добавить параметр с типом OracleType.Cursor и вызвать OracleDataAdapter.Fill.
OracleCommand)command).Parameters.Add("pcr_List", OracleType.Cursor).Direction = ParameterDirection.Output;
Кстати у тебя оракловый провайдер какой ?
Для mssql это наверно было бы так:
DataSet ds = new DataSet;
SqlDataAdapter da = new SqlDataAdapter("exec Proc_Name",sql_conn);
da.Fill(ds);
мб для Oracle как нить так же ? :-)
DataSet ds = new DataSet;
SqlDataAdapter da = new SqlDataAdapter("exec Proc_Name",sql_conn);
da.Fill(ds);
мб для Oracle как нить так же ? :-)
Оставить комментарий
geja_03
Есть соединение с БД. Нужно выполнить хранимую в Бд процедуру (выходной параметр типа "DataSet") и поместить значение этого параметра в стандартный DataSet. Как?