Program.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Configuration;
  7. using System.Data.Common;
  8. using System.IO;
  9. namespace Учёт
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
  16. StreamReader sr; // поток для чтения
  17. StreamWriter sw; // поток дя записи
  18. // Получение строки подключения и поставщика из App.config
  19. string dp = ConfigurationManager.AppSettings["provider"];
  20. string cnStr = ConfigurationManager.AppSettings["conStr"];
  21. // Получение генератора поставщика df
  22. DbProviderFactory df = DbProviderFactories.GetFactory(dp);
  23. // Получение объекта "подключение" (через df)
  24. using (DbConnection cn = df.CreateConnection())
  25. {
  26. cn.ConnectionString = cnStr;
  27. cn.Open();
  28. // Создание объекта "команда" (через df)
  29. DbCommand cmd = df.CreateCommand();
  30. cmd.Connection = cn;
  31. string strSQL = "Select * From ";
  32. cmd.CommandText = strSQL + "Список_пользователей";
  33. // Вывод списка пользователей
  34. cmd.CommandText = strSQL + "Список_пользователей";
  35. using (DbDataReader dr = cmd.ExecuteReader())
  36. {
  37. Console.WriteLine("\n Список_пользователей");
  38. while (dr.Read()) Console.WriteLine("-> ID-{0} \n | FIO-{1} | LOGIN-{2} | PASSWORD-{3} | PIN-CODE-{4}", dr[0], dr[1], dr[2], dr[3], dr[4]);
  39. }
  40. // Вывод платежей с помощью объекта "чтение данных" dr
  41. cmd.CommandText = strSQL + "Список_платежей";
  42. using (DbDataReader dr = cmd.ExecuteReader())
  43. {
  44. Console.WriteLine("\n Список_платежей");
  45. while (dr.Read()) Console.WriteLine("-> ID-{0, -5} | Дата-{1, -20} | Категория-{2, -24} | Наименование платежа-{3, -22} | Количество-{4, -2} | Цена-{5, -10} | Стоимость-{6, -12} | ID_Пользователя-{7} | ", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  46. }
  47. // Найти в БД пользователя и платёж
  48. Console.WriteLine("\n Пользователь-платёж \n");
  49. string task_str = "SELECT Список_пользователей.FIO, Список_платежей.Категория " +
  50. "FROM Список_платежей JOIN Список_пользователей on Список_пользователей.id = Список_платежей.ID_пользователя ";
  51. cmd.CommandText = task_str;
  52. using (DbDataReader dr = cmd.ExecuteReader())
  53. {
  54. while (dr.Read())
  55. {
  56. Console.WriteLine($"Пользователь {dr[0]} за {dr[1]}");
  57. }
  58. }
  59. try
  60. {
  61. Console.WriteLine("\n Добавление пользователей");
  62. string task_Insert = "Insert into Список_пользователей values (" + 80 + ", N'Анучина Любовь Николаевна', 'lubasha1969', 'sol69', '2003');";
  63. string task_GetDataD = "Select * from Список_пользователей;";
  64. cmd.CommandText = task_Insert + task_GetDataD;
  65. using (var dr = cmd.ExecuteReader())
  66. {
  67. while (dr.Read())
  68. {
  69. Console.Write(" ");
  70. }
  71. }
  72. }
  73. catch
  74. {
  75. }
  76. try
  77. {
  78. string task_Insert = "Insert into Список_пользователей values (" + 90 + ", N'Баранова Полина Сергеевна', 'bara333', 'polya3', '2157');";
  79. string task_GetDataD = "Select * from Список_пользователей;";
  80. cmd.CommandText = task_Insert + task_GetDataD;
  81. using (var dr = cmd.ExecuteReader())
  82. {
  83. while (dr.Read())
  84. {
  85. Console.Write(" ");
  86. }
  87. }
  88. }
  89. catch
  90. {
  91. }
  92. try
  93. {
  94. string task_Insert = "Insert into Список_пользователей values (" + 100 + ", N'Банникова Анастасия Алексеевна', 'lyalya01', 'QwErT', '9510');";
  95. string task_GetDataD = "Select * from Список_пользователей;";
  96. cmd.CommandText = task_Insert + task_GetDataD;
  97. using (var dr = cmd.ExecuteReader())
  98. {
  99. while (dr.Read())
  100. {
  101. Console.Write(" ");
  102. }
  103. }
  104. }
  105. catch
  106. {
  107. }
  108. try
  109. {
  110. string task_Insert = "Insert into Список_пользователей values (" + 110 + ", N'Зарипов Руслан Рафаилович', 'Goraone', 'somt2938', '0129');";
  111. string task_GetDataD = "Select * from Список_пользователей;";
  112. cmd.CommandText = task_Insert + task_GetDataD;
  113. using (var dr = cmd.ExecuteReader())
  114. {
  115. while (dr.Read())
  116. {
  117. Console.Write(" ");
  118. }
  119. }
  120. }
  121. catch
  122. {
  123. }
  124. try
  125. {
  126. string task_Insert = "Insert into Список_пользователей values (" + 120 + ", N'Алфимова Светлана Александровна', 'Fiolet18', 'ImOk', '5452');";
  127. string task_GetDataD = "Select * from Список_пользователей;";
  128. cmd.CommandText = task_Insert + task_GetDataD;
  129. using (var dr = cmd.ExecuteReader())
  130. {
  131. while (dr.Read())
  132. {
  133. Console.Write(" ");
  134. }
  135. }
  136. }
  137. catch
  138. {
  139. }
  140. try
  141. {
  142. Console.WriteLine("\n Добавление платежа");
  143. string task_Insert = "Insert into Список_платежей values (" + 60 + ", '10.01.2021', N'Питание и быт', N'Сыр Российский', '1', '250','250','20');";
  144. string task_GetDataD = "Select * from Список_платежей;";
  145. cmd.CommandText = task_Insert + task_GetDataD;
  146. using (var dr = cmd.ExecuteReader())
  147. {
  148. while (dr.Read())
  149. {
  150. Console.Write(" ");
  151. }
  152. }
  153. }
  154. catch
  155. {
  156. }
  157. try
  158. {
  159. Console.WriteLine("\n Добавление платежа");
  160. string task_Insert = "Insert into Список_платежей values (" + 61 + ", '02.02.2021', N'Питание и быт', N'Смайк 5', '1', '69','69','40');";
  161. string task_GetDataD = "Select * from Список_платежей;";
  162. cmd.CommandText = task_Insert + task_GetDataD;
  163. using (var dr = cmd.ExecuteReader())
  164. {
  165. while (dr.Read())
  166. {
  167. Console.Write(" ");
  168. }
  169. }
  170. }
  171. catch
  172. {
  173. }
  174. try
  175. {
  176. Console.WriteLine("\n Добавление платежа");
  177. string task_Insert = "Insert into Список_платежей values (" + 62 + ", '12.03.2017', N'Медицина', N'Лекарства', '10', '50','500','30');";
  178. string task_GetDataD = "Select * from Список_платежей;";
  179. cmd.CommandText = task_Insert + task_GetDataD;
  180. using (var dr = cmd.ExecuteReader())
  181. {
  182. while (dr.Read())
  183. {
  184. Console.Write(" ");
  185. }
  186. }
  187. }
  188. catch
  189. {
  190. }
  191. try
  192. {
  193. Console.WriteLine("\n Добавление платежа");
  194. string task_Insert = "Insert into Список_платежей values (" + 63 + ", '02.02.2027', N'Автомобиль', N'Ремонт', '1', '2000','2000','70');";
  195. string task_GetDataD = "Select * from Список_платежей;";
  196. cmd.CommandText = task_Insert + task_GetDataD;
  197. using (var dr = cmd.ExecuteReader())
  198. {
  199. while (dr.Read())
  200. {
  201. Console.Write(" ");
  202. }
  203. }
  204. }
  205. catch
  206. {
  207. }
  208. try
  209. {
  210. Console.WriteLine("\n Добавление платежа");
  211. string task_Insert = "Insert into Список_платежей values (" + 64 + ", '11.09.2018', N'Разное', N'Чехол', '1', '200','200','50');";
  212. string task_GetDataD = "Select * from Список_платежей;";
  213. cmd.CommandText = task_Insert + task_GetDataD;
  214. using (var dr = cmd.ExecuteReader())
  215. {
  216. while (dr.Read())
  217. {
  218. Console.Write(" ");
  219. }
  220. }
  221. }
  222. catch
  223. {
  224. }
  225. // Команда Update изменеие
  226. Console.WriteLine("\n Изменение платежа");
  227. string task_Update = "Update Список_платежей set Цена = '420' where ID = 64;" +
  228. "Update Список_платежей set стоимость = '420' where ID = 64;";
  229. string task_Update1 = "Update Список_платежей set Цена = '2900' where ID = 55;" +
  230. "Update Список_платежей set стоимость = '2900' where ID = 55;";
  231. string task_Update2 = "Update Список_платежей set Цена = '450' where ID = 44;" +
  232. "Update Список_платежей set стоимость = '450' where ID = 44;";
  233. string task_Update3 = "Update Список_платежей set Цена = '400' where ID = 20;" +
  234. "Update Список_платежей set стоимость = '400' where ID = 20;";
  235. string task_Update4 = "Update Список_платежей set Цена = '200' where ID = 4;" +
  236. "Update Список_платежей set стоимость = '200' where ID = 4;";
  237. string task_GetDataR = "Select * from Список_платежей;";
  238. cmd.CommandText = task_Update + task_Update1 + task_Update2 + task_Update3 + task_Update4 + task_GetDataR;
  239. using (var dr = cmd.ExecuteReader())
  240. {
  241. while (dr.Read())
  242. {
  243. Console.WriteLine("-> ID-{0, -5} | Дата-{1, -22} | Категория-{2, -24} | Наименование платежа-{3, -22} | Количество-{4, -2} | Цена-{5, -10} | Стоимость-{6, -12} | ID_Пользователя-{7} | ", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  244. }
  245. }
  246. // -------------------------------------------------------
  247. //cn.Close(); // закрыть соединение
  248. //удаление
  249. /*try
  250. {
  251. int count = 1;
  252. float[] min = new float[3];
  253. for (int i = 0; i < 3; i++)
  254. {
  255. min[i] = int.MaxValue;
  256. }
  257. int[] minID = new int[3];
  258. for (int i = 0; i < 3; i++)
  259. {
  260. minID[i] = 0;
  261. }
  262. cmd.CommandText = strSQL + "Список_платежей";
  263. cn.Open();
  264. using (var dr = cmd.ExecuteReader())
  265. {
  266. while (dr.Read())
  267. {
  268. for (int i = 0; i < 3; i++)
  269. {
  270. if (Convert.ToSingle(dr[6]) < min[i])
  271. {
  272. min[i] = Convert.ToSingle(dr[6]);
  273. break;
  274. }
  275. Array.Sort(min);
  276. }
  277. count++;
  278. }
  279. }
  280. cn.Close();
  281. cn.Open();
  282. Console.WriteLine("Список с удалёнными тремя минимальными по сумме");
  283. string task_Delete = "Delete from Список_платежей where Стоимость = " + min[0] + ";";
  284. cmd.CommandText = task_Delete;
  285. cmd.ExecuteReader();
  286. cn.Close();
  287. cn.Open();
  288. string task_GetData = "Select * from Список_платежей;";
  289. string task_Delete1 = "Delete from Список_платежей where Стоимость = " + min[1] + ";";
  290. cmd.CommandText = task_Delete1;
  291. cmd.ExecuteReader();
  292. cn.Close();
  293. cn.Open();
  294. string task_GetData1 = "Select * from Список_платежей;";
  295. string task_Delete2 = "Delete from Список_платежей where Стоимость = " + min[2] + ";";
  296. cmd.CommandText = task_Delete2;
  297. cmd.ExecuteReader();
  298. cn.Close();
  299. cn.Open();
  300. string task_GetData2 = "Select * from Список_платежей;";
  301. cmd.CommandText = task_GetData + task_GetData1 + task_GetData2;
  302. using (var dr = cmd.ExecuteReader())
  303. {
  304. while (dr.Read())
  305. {
  306. Console.WriteLine("| -{0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  307. }
  308. }
  309. cn.Close();
  310. }
  311. catch
  312. {
  313. }*/
  314. try
  315. { // Чтение из файла
  316. // связывание с файлом, кодировка символов Юникода
  317. const int NmaxZap = 10; // макс.число записей
  318. FileInfo fi = new FileInfo("PayCopy.txt");
  319. sr = new StreamReader("Pay.txt",Encoding.GetEncoding(65001));
  320. string [] d = new string[NmaxZap];
  321. string t = sr.ReadLine(); // чтение первой (0-й) строки
  322. int i = 0; // счетчик строк
  323. while ((t!=null)&&(i<d.Length)) // Чтение из файла не более чем NmaxZap
  324. {
  325. Console.WriteLine(t); // на экран (для контроля)
  326. t = sr.ReadLine(); // чтение остальных строк
  327. }
  328. sr.Close(); //fi.CopyTo("PayCopy.txt", true);
  329. fi = new FileInfo("Pay.txt"); // информация о файле
  330. sw = fi.AppendText();
  331. // --------------------------------------------------------
  332. Console.WriteLine("\nБыли добавлены следующие записи: ");
  333. sw.WriteLine("\nБыли добавлены следующие записи: ");
  334. try
  335. {
  336. string task_Insert = "Insert into Список_платежей values (" + 65 + ", N'01.12.20', N'Медецина', N'Врач', '1', '1500', '1500', '10');";
  337. string task_GetDataD = "Select * from Список_платежей;";
  338. cmd.CommandText = task_Insert + task_GetDataD;
  339. using (DbDataReader dr = cmd.ExecuteReader())
  340. {
  341. while (dr.Read())
  342. {
  343. if (Convert.ToInt32(dr[0]) == 65)
  344. {
  345. Console.WriteLine("| {0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  346. sw.WriteLine("|{0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  347. }
  348. }
  349. }
  350. task_Insert = "Insert into Список_платежей values (" + 66 + ", N'06.12.2022', N'Разное', N'Ствол', '5', '15205', '76025', '60');";
  351. task_GetDataD = "Select * from Список_платежей;";
  352. cmd.CommandText = task_Insert + task_GetDataD;
  353. using (DbDataReader dr = cmd.ExecuteReader())
  354. {
  355. while (dr.Read())
  356. {
  357. if (Convert.ToInt32(dr[0]) == 66)
  358. {
  359. Console.WriteLine("|{0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  360. sw.WriteLine("| {0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  361. }
  362. }
  363. }
  364. task_Insert = "Insert into Список_платежей values (" + 67 + ", N'08.02.2021', N'Быт и питание', N'Гипермаркет', '1', '3000', '3000', '110');";
  365. task_GetDataD = "Select * from Список_платежей;";
  366. cmd.CommandText = task_Insert + task_GetDataD;
  367. using (DbDataReader dr = cmd.ExecuteReader())
  368. {
  369. while (dr.Read())
  370. {
  371. if (Convert.ToInt32(dr[0]) == 67)
  372. {
  373. Console.WriteLine("|{0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  374. sw.WriteLine("|{0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]);
  375. }
  376. }
  377. }
  378. }
  379. catch
  380. {
  381. Console.WriteLine("Вставка новой записи о пользователе с уже заданным ID");
  382. sw.WriteLine("Вставка новой записи о пользователе с уже заданным ID");
  383. }
  384. sw.Close();
  385. // Запись в файл:
  386. // связывание с файлом, кодировка символов
  387. sr = new StreamReader("Pay.txt", Encoding.GetEncoding(65001));
  388. string str = File.ReadAllText("PayCopy.txt");//информация о файле
  389. fi = new FileInfo("PayCopy.txt");
  390. sw = fi.AppendText();
  391. sw.WriteLine();
  392. t = sr.ReadLine(); // чтение первой (0-й) строки
  393. while (t != null) // Чтение из файла
  394. {
  395. if (!str.Contains(t))
  396. {
  397. sw.WriteLine(t);
  398. }
  399. t = sr.ReadLine(); // чтение остальных строк
  400. }
  401. sr.Close();
  402. sw.Close();
  403. cn.Close(); // закрыть соединение
  404. }
  405. catch (Exception ex) // обработка исключений (например, если нет файла "info.txt")
  406. {
  407. Console.WriteLine("Нет файла для чтения!"+ ex);
  408. }
  409. // --------------------------------------------------------
  410. Console.ReadKey();
  411. }
  412. }
  413. }
  414. }