Re[3]: Oracle + C#
От: vasya-serega Украина  
Дата: 09.10.09 06:24
Оценка: +1
08.10.2009 17:26, drem1lin пишет:

> вопрос как раз состоит в том, что бы в данном примере использовать

> динамически определяемое количество параметров с динамическим
> определением типов

Ну так в чем проблема? Используем StringBuilder для формирования строки
запроса. А затем создаем параметры нужно нам типа.
Правда код получится громоздкий, но что делать...
Posted via RSDN NNTP Server 2.1 beta
Oracle + C#
От: drem1lin  
Дата: 07.10.09 13:56
Оценка:
Здраствуйте

Хотелось бы получить помощь по следующей проблеме, как динамически создавать запросы на С# для БД Oracle.
Есть БД, в ней несколько таблиц, как одной и той же кнопкой отправлять запросы, например, INSERT на разные таблицы,
Имя таблицы я знаю, а как формировать списки параметров, которые разного размера и разных типов? если формировать запросы
ручками, то возникает проблема с типами VARCHAR, там требуются '', а как динамически их проставлять в нужных местах я не знаю.
А как пользоваться OleDbCommand я не понял=( в MSDN указаны только самые простые примеры и как быть с динамическим именем таблицы
и динамическим набором параметров.. Может кто просветит как это делается правильно.. Любые исходники были бы желательны.


Заранее спасибо.
Re: Oracle + C#
От: wildwind Россия  
Дата: 07.10.09 18:57
Оценка:
Почитай про параметры в ADO.NET. В терминологии Oracle это bind variables.
Re: Oracle + C#
От: vasya-serega Украина  
Дата: 08.10.09 05:43
Оценка:
Здравствуйте, drem1lin, Вы писали:

D> Хотелось бы получить помощь по следующей проблеме, как динамически создавать запросы на С# для БД Oracle.

D>Есть БД, в ней несколько таблиц, как одной и той же кнопкой отправлять запросы, например, INSERT на разные таблицы,
D>Имя таблицы я знаю, а как формировать списки параметров, которые разного размера и разных типов? если формировать запросы
D>ручками, то возникает проблема с типами VARCHAR, там требуются '', а как динамически их проставлять в нужных местах я не знаю.
D>А как пользоваться OleDbCommand я не понял=( в MSDN указаны только самые простые примеры и как быть с динамическим именем таблицы
D>и динамическим набором параметров.. Может кто просветит как это делается правильно.. Любые исходники были бы желательны.

Насчет VARCHAR не понятно, что имеется в виду. И зачем вам OleDbCommand, если с ораклом надо работать через OracleCommand. Самый простой пример, кот. нашел:
const string strCon = "User Id=SCOTT;Password=TIGER;Data Source=TRAINING;";
    using( OracleConnection con = new OracleConnection(strCon))
    {
        con.Open();
        
        OracleCommand cmd = new OracleCommand("SELECT EMPNO, ENAME FROM EMP WHERE DEPTNO = :DEPT", con );
        //OracleParameter param = cmd.Parameters.Add( ":DEPT", OracleDbType.Decimal );
        //param.Value = new OracleDecimal(10);
        OracleParameter param = cmd.Parameters.Add( ":DEPT", OracleDbType.Int32 );
        param.Value = 10;

        OracleDataReader rdr = cmd.ExecuteReader();
        while( rdr.Read())
            Console.WriteLine("{0} - {1}", rdr["EMPNO"], rdr["ENAME"]);
    }
Re[2]: Oracle + C#
От: drem1lin  
Дата: 08.10.09 14:26
Оценка:
Здравствуйте, vasya-serega, Вы писали:

VS>Здравствуйте, drem1lin, Вы писали:


D>> Хотелось бы получить помощь по следующей проблеме, как динамически создавать запросы на С# для БД Oracle.

D>>Есть БД, в ней несколько таблиц, как одной и той же кнопкой отправлять запросы, например, INSERT на разные таблицы,
D>>Имя таблицы я знаю, а как формировать списки параметров, которые разного размера и разных типов? если формировать запросы
D>>ручками, то возникает проблема с типами VARCHAR, там требуются '', а как динамически их проставлять в нужных местах я не знаю.
D>>А как пользоваться OleDbCommand я не понял=( в MSDN указаны только самые простые примеры и как быть с динамическим именем таблицы
D>>и динамическим набором параметров.. Может кто просветит как это делается правильно.. Любые исходники были бы желательны.

VS>Насчет VARCHAR не понятно, что имеется в виду. И зачем вам OleDbCommand, если с ораклом надо работать через OracleCommand. Самый простой пример, кот. нашел:

VS>
VS>const string strCon = "User Id=SCOTT;Password=TIGER;Data Source=TRAINING;";
VS>    using( OracleConnection con = new OracleConnection(strCon))
VS>    {
VS>        con.Open();
        
VS>        OracleCommand cmd = new OracleCommand("SELECT EMPNO, ENAME FROM EMP WHERE DEPTNO = :DEPT", con );
VS>        //OracleParameter param = cmd.Parameters.Add( ":DEPT", OracleDbType.Decimal );
VS>        //param.Value = new OracleDecimal(10);
VS>        OracleParameter param = cmd.Parameters.Add( ":DEPT", OracleDbType.Int32 );
VS>        param.Value = 10;

VS>        OracleDataReader rdr = cmd.ExecuteReader();
VS>        while( rdr.Read())
VS>            Console.WriteLine("{0} - {1}", rdr["EMPNO"], rdr["ENAME"]);
VS>    }
VS>



вопрос как раз состоит в том, что бы в данном примере использовать динамически определяемое количество параметров с динамическим определением типов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.