Почитай про параметры в ADO.NET. В терминологии Oracle это bind variables.
Здравствуйте, 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"]);
}
Здравствуйте, 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>
вопрос как раз состоит в том, что бы в данном примере использовать динамически определяемое количество параметров с динамическим определением типов
08.10.2009 17:26, drem1lin пишет:
> вопрос как раз состоит в том, что бы в данном примере использовать
> динамически определяемое количество параметров с динамическим
> определением типов
Ну так в чем проблема? Используем StringBuilder для формирования строки
запроса. А затем создаем параметры нужно нам типа.
Правда код получится громоздкий, но что делать...
Posted via RSDN NNTP Server 2.1 beta