Form1.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.IO;
  5. using System.Windows.Forms;
  6. using System.Xml;
  7. namespace UAS_XmlAnalysor
  8. {
  9. public partial class Form1 : Form
  10. {
  11. DataHelper dh = new DataHelper();
  12. DataTable dt;
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17. private void Form1_Load(object sender, EventArgs e)
  18. {
  19. FolderPath.Text = Properties.Settings.Default.FolderPath;
  20. BackUpFolderPath.Text = Properties.Settings.Default.BackUpFolderPath;
  21. Source.Text = Properties.Settings.Default.Source;
  22. Master.Text = Properties.Settings.Default.Master;
  23. dt = (DataTable)dh.ExecuteSql("select ms_pwd,ma_user,ma_address from master ", "select");
  24. Master.DataSource = dt;
  25. Master.DisplayMember = "ma_user";
  26. Master.ValueMember = "ma_user";
  27. }
  28. private void StartWatch_Click(object sender, EventArgs e)
  29. {
  30. for (int i = 0; i < dt.Rows.Count; i++)
  31. {
  32. if (Master.Text == dt.Rows[i]["ma_user"].ToString())
  33. {
  34. DataHelper.DBConnectionString = "Data Source=" + dt.Rows[i]["ma_address"] + ";User ID=" + dt.Rows[i]["ma_user"] + ";PassWord=" + dt.Rows[i]["ms_pwd"]; ;
  35. Console.WriteLine(DataHelper.DBConnectionString);
  36. dh = new DataHelper();
  37. }
  38. }
  39. if (!dh.CheckExist("source", "sc_code='" + Source.Text + "' and sc_statuscode='AUDITED'"))
  40. {
  41. OperateResult.AppendText("岗位资源错误或者未审核\n");
  42. return;
  43. }
  44. XmlWatcher.Path = FolderPath.Text;
  45. XmlWatcher.Filter = "*.xml";
  46. XmlWatcher.Created += new FileSystemEventHandler(XmlWatcher_Created);
  47. XmlWatcher.EnableRaisingEvents = true;
  48. Properties.Settings.Default.FolderPath = FolderPath.Text;
  49. Properties.Settings.Default.BackUpFolderPath = BackUpFolderPath.Text;
  50. Properties.Settings.Default.Source = Source.Text;
  51. Properties.Settings.Default.Master = Master.Text;
  52. Properties.Settings.Default.Save();
  53. Source.Enabled = false;
  54. OperateResult.AppendText("开始执行监控\n");
  55. }
  56. private void XmlWatcher_Created(object sender, FileSystemEventArgs e)
  57. {
  58. while (true)
  59. {
  60. try
  61. {
  62. using (Stream stream = File.Open(e.FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
  63. {
  64. if (stream != null)
  65. break;
  66. }
  67. System.Threading.Thread.Sleep(500);
  68. }
  69. catch (Exception)
  70. {
  71. }
  72. }
  73. XmlReader myReader = XmlReader.Create(FolderPath.Text + @"\" + e.Name);
  74. string sncode = e.Name.Split('.')[0];
  75. OperateResult.AppendText("读取文件" + e.Name + "\n");
  76. List<string> name = new List<string>();
  77. List<string> result = new List<string>();
  78. int name_or_result = 0;
  79. while (myReader.Read())
  80. {
  81. if (myReader.NodeType == XmlNodeType.Text)
  82. {
  83. if (name_or_result % 2 == 0)
  84. {
  85. name.Add(myReader.Value);
  86. name_or_result++;
  87. }
  88. else
  89. {
  90. result.Add(myReader.Value);
  91. name_or_result++;
  92. }
  93. }
  94. }
  95. string sql = "insert into STEPTESTDETAIL(std_id,std_sn,std_subclass1,std_testresult,std_date,std_rescode) values (STEPTESTDETAIL_seq.nextval,'" + sncode + "',:std_subclass1,:std_testresult,sysdate,'" + Source.Text + "')";
  96. dh.BatchInsert(sql, new string[] { "std_subclass1", "std_testresult" }, name.ToArray(), result.ToArray());
  97. myReader.Close();
  98. FileInfo file = new FileInfo(FolderPath.Text + @"\" + e.Name);
  99. if (file.Exists)
  100. {
  101. try
  102. {
  103. file.MoveTo(BackUpFolderPath.Text + @"\" + e.Name);
  104. }
  105. catch (Exception ex)
  106. {
  107. OperateResult.AppendText(e.Name + ex.Message+"\n");
  108. }
  109. }
  110. }
  111. private void StopWatch_Click(object sender, EventArgs e)
  112. {
  113. XmlWatcher.EnableRaisingEvents = false;
  114. Source.Enabled = true;
  115. OperateResult.AppendText("停止执行监控\n");
  116. }
  117. private void Clean_Click(object sender, EventArgs e)
  118. {
  119. OperateResult.Clear();
  120. }
  121. private void ChooseFolder_Click(object sender, EventArgs e)
  122. {
  123. FolderBrowserDialog folder = new FolderBrowserDialog();
  124. folder.Description = "选择监控文件夹";
  125. DialogResult result = folder.ShowDialog();
  126. if (result == DialogResult.OK)
  127. {
  128. FolderPath.Text = folder.SelectedPath;
  129. }
  130. }
  131. private void ReadNodeFromXML(string FileName)
  132. {
  133. }
  134. private void ChooseBackUpFolder_Click(object sender, EventArgs e)
  135. {
  136. FolderBrowserDialog folder = new FolderBrowserDialog();
  137. folder.Description = "选择备份文件夹";
  138. DialogResult result = folder.ShowDialog();
  139. if (result == DialogResult.OK)
  140. {
  141. BackUpFolderPath.Text = folder.SelectedPath;
  142. }
  143. }
  144. }
  145. }