Пишу WCF сервис по запросам в Oracle

162
21 октября 2021, 03:40

Есть код. Мне необходимо чтобы клиент приложение в консоли выводило строки из БД Оракл. Как мне правильно написать метод Zapros? В классе оракл прописано подключение и в ist

QueryEmployee чтение строк из таблицы. Как мне правильно написать public class Service1 : IService1 ?

 public class Service1 : IService1
    {
        public string Zapros()
        {
            using (Oracle oracle = new Oracle())
            {
                Connect();
            }
            return Zapros();
        }
    }
    class Oracle : IDisposable
    {
        static void Connect()
        {
            List<P> res;
            using (OracleConnection conn = DBOracleUtils.GetDBConnection())
            {
                Console.WriteLine("Get Connection: " + conn);
                try
                {
                    conn.Open();
                    Console.WriteLine(conn.ConnectionString, "Successful Connection");

                }
                catch (Exception ex)
                {
                    Console.WriteLine("## ERROR: " + ex.Message);
                    Console.Read();
                    return;
                }
                Console.WriteLine("Connection successful!");
                res = QueryEmployee(conn);
            }
            Console.Read();
        }
        private static List<P> QueryEmployee(OracleConnection conn)
        {
            // пример string sql = "SELECT * FROM ORGANIZATION where rownum <=10";
            string sql = "SELECT a.name, a.reg_number  FROM organization a WHERE a.id = 10496872";
            // Создать объект Command.
            using (OracleCommand cmd = new OracleCommand())
            {
                // Сочетать Command с Connection.
                cmd.Connection = conn;
                cmd.CommandText = sql;
                using (OracleDataReader reader = cmd.ExecuteReader())
                {
                    var pp = new List<P>();
                    if (reader.HasRows) // если есть данные
                    {
                        // выводим названия столбцов
                        // пример Console.WriteLine("{0} \t{1} \t{2}", reader.GetName(0), reader.GetName(2), reader.GetName(4));
                        Console.WriteLine("{0} \t{1}", reader.GetName(0), reader.GetName(1));
                        while (reader.Read()) // построчно считываем данные
                        {
                            var obj = new P();
                            //obj.Id = reader.GetInt32(0);
                            obj.S1 = reader.GetString(0);
                            obj.S2 = reader.GetString(1);
                            //obj.S3 = reader.GetString(4);
                            pp.Add(obj);
                            // пример Console.WriteLine("{0} \t{1} \t{2}", obj.S1, obj.S2, obj.S3);
                            Console.WriteLine("{0 \t{1}} ", obj.S1);
                        }
                    }
                    return pp;
                }
            }
        }
public class P
    {
        public int Id { get; set; }
        public string S1 { get; set; }
        public string S2 { get; set; }
        public string S3 { get; set; }
    }
READ ALSO
Проблемы с App.config

Проблемы с App.config

При разработке простенького приложения (для себя) я добавил в секцию appSettings файла Appconfig 1 элемент:

203
Зачем нужны &quot;Человеко-понятные URL&quot;?

Зачем нужны "Человеко-понятные URL"?

Я далек от веб-программирования, но на сайте периодически возникают вопросы, как сделать "Человеко-понятные URL"

175
Как в базе MySQL PHP обновить значение, если оно меньше, чем новое?

Как в базе MySQL PHP обновить значение, если оно меньше, чем новое?

Есть база данных MySQL и мне нужно, чтобы значение в базе обновлялось только в том случае, если оно меньше нового, иначе не обновлять вовсеЗа...

142
Как правильно вернуть значение запроса?

Как правильно вернуть значение запроса?

Как вернуть значение id в переменную из запроса:

178