Здравствуйте. Вобщем у меня есть база данных 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-файлов например каждую секунду. Не разу не пользовался таймерами. Как можно мой код обернуть в таймер что бы он отрабатывал каждую секнду к примеру. Спасибо заранее.
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)
{
//Ваш код
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сейчас, когда я запускаю новый процесс из своего C# приложения, я делаю это таким образом :
Есть ли у кого на примете хорошая статья на тему типов полиморфизмов? Интересует подтиповый полиморфизм(subtype polymorphism)Как я понял их 4 типа:...
Сделал Авторизацию с пользователямиТак вот: я хочу чтобы при входе пользователя, открывалась его таблица, а не одна общая
В условии одно из значений — false, другое — true (получаемое в тернарном операторе), но тело условия всё равно выполняется