Ипользование таймер в коде c#

390
19 июня 2017, 18:44

Здравствуйте. Вобщем у меня есть база данных Oracle. И приложение ASP.NET с помощью которого в базу записываются записи и xml-файлы в специальную трансферную таблицу. А отдельное консольное приложение переписывает xml-ки по строкам в финальную таблицу. Вот код:

String str = "select T.xmldoc.getClobVal() as xmldoc, TRANSFER_TABLE_ID from Transfer_table T where WRITE_CHECKS <> 1";
using (OracleConnection con = new OracleConnection("Data Source=XE;User ID=Mydb;Password=111292;Unicode=True"))
{
    con.Open();
    using (OracleCommand com = new OracleCommand(str, con))
    {
        using (OracleDataReader reader = com.ExecuteReader())
        {
            while (reader.Read())
            {
                String xml = reader.GetString(0);
                int id = reader.GetInt32(1);
                XDocument doc;
                using (var sr = new StringReader(xml))
                    doc = XDocument.Load(sr);
                OracleCommand com1 = new OracleCommand("insert into Steel_sheet (fuse_id, steel_grades_id, storage_id, length, width, thickness, shipping_date, a_comment, date_manufacture) VALUES ('" + (int)doc.Root.Element("Fuse") + "','" + (int)doc.Root.Element("SteelGrades") + "','" + (int)doc.Root.Element("Storage") + "','" + (string)doc.Root.Element("Length") + "','" + (string)doc.Root.Element("Width") + "','" + (string)doc.Root.Element("Thickness") + "','" + (string)doc.Root.Element("ShippingDate") + "','" + (string)doc.Root.Element("Acomment") + "','" + (string)doc.Root.Element("DateManufacture") + "')", con);  
                com1.ExecuteNonQuery();
                OracleCommand com2 = new OracleCommand("update TRANSFER_TABLE set WRITE_CHECKS = 1 where TRANSFER_TABLE_ID = '" + id + "'", con);
                com2.ExecuteNonQuery();
            }
        }
    }
    con.Close();
}
Console.ReadKey();

Этот код запишет хоть все сразу xml-файлы которые ещё не записаны. Но проблема в том что новые записи могут появиться в любой момент. Мне нужно что бы консолька висела в рабочем состоянии и била таблицу на наличие новых xml-файлов например каждую секунду. Не разу не пользовался таймерами. Как можно мой код обернуть в таймер что бы он отрабатывал каждую секнду к примеру. Спасибо заранее.

Answer 1
static void Main(string[] args)
{
    Timer timer = new Timer();
    timer.Interval = 1000;
    timer.Enabled = true;
    timer.Elapsed += Timer_Elapsed;
    Console.ReadLine();
}
private static void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
    //Ваш код
}
READ ALSO
Скрыть окно процесса вызванного кодом C#

Скрыть окно процесса вызванного кодом C#

Сейчас, когда я запускаю новый процесс из своего C# приложения, я делаю это таким образом :

264
Подтиповый полиморфизм\полиморфизм включения

Подтиповый полиморфизм\полиморфизм включения

Есть ли у кого на примете хорошая статья на тему типов полиморфизмов? Интересует подтиповый полиморфизм(subtype polymorphism)Как я понял их 4 типа:...

285
Помогите с БД Access в C#

Помогите с БД Access в C#

Сделал Авторизацию с пользователямиТак вот: я хочу чтобы при входе пользователя, открывалась его таблица, а не одна общая

235
Неправильное выполнение условия

Неправильное выполнение условия

В условии одно из значений — false, другое — true (получаемое в тернарном операторе), но тело условия всё равно выполняется

197