Advertisement
Guest User

lul.cs

a guest
May 23rd, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.IO;
  5. using System.Windows;
  6. using System.Windows.Media.Imaging;
  7. using Microsoft.Win32;
  8. using Npgsql;
  9.  
  10.  
  11. namespace Lab7
  12. {
  13. /// <summary>
  14. /// Interaction logic for MainWindow.xaml
  15. /// </summary>
  16. public partial class MainWindow : Window
  17. {
  18.  
  19. string connString = "Host=localhost;Username=postgres;Password=mypass;Database=postgres";
  20. public BitmapImage image = new BitmapImage();
  21. bool updateExecuting = false;
  22.  
  23. public MainWindow()
  24. {
  25. InitializeComponent();
  26. }
  27.  
  28. private void Button_Click(object sender, RoutedEventArgs e)
  29. {
  30. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  31. {
  32. conn.Open();
  33.  
  34. using (NpgsqlCommand cmd = new NpgsqlCommand())
  35. {
  36. cmd.Connection = conn;
  37. cmd.CommandText = "INSERT INTO authors (name, country, gender) VALUES (@name, @country, @gender)";
  38. cmd.Parameters.AddWithValue("name", AuthorName.Text);
  39. cmd.Parameters.AddWithValue("country", AuthorCountry.Text);
  40. if(Male.IsChecked == true && Female.IsChecked == false)
  41. {
  42. cmd.Parameters.AddWithValue("gender", 'm');
  43. }
  44. if(Female.IsChecked == true && Male.IsChecked == false)
  45. {
  46. cmd.Parameters.AddWithValue("gender", 'f');
  47. }
  48. if (Female.IsChecked == false && Male.IsChecked == false)
  49. {
  50. cmd.Parameters.AddWithValue("gender", 'n');
  51. }
  52. if (Female.IsChecked == true && Male.IsChecked == true)
  53. {
  54. cmd.Parameters.AddWithValue("gender", '?');
  55. }
  56.  
  57. cmd.ExecuteNonQuery();
  58. }
  59.  
  60. AuthorsList_Loaded(this, new RoutedEventArgs());
  61. PublishersList_Loaded(this, new RoutedEventArgs());
  62.  
  63. conn.Close();
  64. }
  65. } //ADD AUTHOR
  66.  
  67. private void Button_Click_1(object sender, RoutedEventArgs e)
  68. {
  69. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  70. {
  71. conn.Open();
  72.  
  73. using (NpgsqlCommand cmd = new NpgsqlCommand())
  74. {
  75. cmd.Connection = conn;
  76. cmd.CommandText = "INSERT INTO publishers (name, country, city, year, type) VALUES (@name, @country, @city, @year, @type)";
  77. cmd.Parameters.AddWithValue("name", PublisherName.Text);
  78. cmd.Parameters.AddWithValue("country", PublisherCountry.Text);
  79. cmd.Parameters.AddWithValue("city", PublisherCity.Text);
  80. cmd.Parameters.AddWithValue("year", PublisherYear.Text);
  81.  
  82. if(PublicCheck.IsChecked == true && CustomCheck.IsChecked == false)
  83. {
  84. cmd.Parameters.AddWithValue("type", 'p');
  85. }
  86.  
  87. if(PublicCheck.IsChecked == false && CustomCheck.IsChecked == true)
  88. {
  89. cmd.Parameters.AddWithValue("type", 'c');
  90. }
  91.  
  92. cmd.ExecuteNonQuery();
  93. }
  94.  
  95. conn.Close();
  96. AuthorsList_Loaded(this, new RoutedEventArgs());
  97. PublishersList_Loaded(this, new RoutedEventArgs());
  98. }
  99. } // ADD PUBLISHER
  100.  
  101. private void AuthorsList_Loaded(object sender, RoutedEventArgs e)
  102. {
  103. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  104. {
  105. conn.Open();
  106.  
  107. NpgsqlDataAdapter adapter = new NpgsqlDataAdapter("SELECT * FROM authors", conn);
  108.  
  109. DataTable dataTable = new DataTable("authors");
  110.  
  111. adapter.Fill(dataTable);
  112.  
  113. AuthorsList.ItemsSource = dataTable.DefaultView;
  114. }
  115. }
  116.  
  117. private void PublishersList_Loaded(object sender, RoutedEventArgs e)
  118. {
  119. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  120. {
  121. conn.Open();
  122.  
  123. NpgsqlDataAdapter adapter = new NpgsqlDataAdapter("SELECT * FROM publishers", conn);
  124.  
  125. DataTable dataTable = new DataTable("publishers");
  126.  
  127. adapter.Fill(dataTable);
  128.  
  129. PublishersList.ItemsSource = dataTable.DefaultView;
  130. }
  131. }
  132.  
  133. private void DataGrid_Loaded(object sender, RoutedEventArgs e)
  134. {
  135. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  136. {
  137. conn.Open();
  138.  
  139. NpgsqlDataAdapter adapter = new NpgsqlDataAdapter("SELECT * FROM books", conn);
  140.  
  141. DataTable dataTable = new DataTable("books");
  142.  
  143. adapter.Fill(dataTable);
  144.  
  145. BooksList.ItemsSource = dataTable.DefaultView;
  146. }
  147. }
  148.  
  149. private void Button_Click_2(object sender, RoutedEventArgs e) //ADD BOOKS
  150. {
  151.  
  152. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  153. {
  154. conn.Open();
  155.  
  156. using (NpgsqlCommand cmd = new NpgsqlCommand())
  157. {
  158. cmd.Connection = conn;
  159. cmd.CommandText = "INSERT INTO books (name, pageqty, publisher, cd, dvd, authors, year, cover_img) " +
  160. "VALUES (@name, @pageqty, @publisher, @cd, @dvd, @authors, @year, @cover_img)";
  161. cmd.Parameters.AddWithValue("name", NameField.Text);
  162. cmd.Parameters.AddWithValue("authors", ((DataRowView)AuthorsList.SelectedItems[0])["authorid"]);
  163. cmd.Parameters.AddWithValue("publisher", ((DataRowView)PublishersList.SelectedItems[0])["publisherid"]);
  164. try
  165. {
  166. cmd.Parameters.AddWithValue("pageqty", Int32.Parse(PageQtyField.Text));
  167. cmd.Parameters.AddWithValue("year", Int32.Parse(YearField.Text));
  168. }
  169. catch (Exception)
  170. {
  171. MessageBox.Show("Wrong numbers :)");
  172. }
  173.  
  174. try
  175. {
  176. cmd.Parameters.AddWithValue("cover_img", PictureByteConverter.ImageToBytes(image));
  177. }
  178. catch (InvalidOperationException)
  179. {
  180. MessageBox.Show("Choose an Image first!");
  181. return;
  182. }
  183.  
  184.  
  185. if(Cd.IsChecked == true)
  186. {
  187. cmd.Parameters.AddWithValue("cd", true);
  188. }
  189. else
  190. {
  191. cmd.Parameters.AddWithValue("cd", false);
  192. }
  193.  
  194. if (Dvd.IsChecked == true)
  195. {
  196. cmd.Parameters.AddWithValue("dvd", true);
  197. }
  198. else
  199. {
  200. cmd.Parameters.AddWithValue("dvd", false);
  201. }
  202.  
  203. cmd.ExecuteNonQuery();
  204. }
  205.  
  206. conn.Close();
  207. DataGrid_Loaded(this, new RoutedEventArgs());
  208. ; }
  209. }
  210.  
  211. private void Button_Click_3(object sender, RoutedEventArgs e)
  212. {
  213. OpenFileDialog dialog = new OpenFileDialog();
  214. if (dialog.ShowDialog() == true)
  215. {
  216. image.BeginInit();
  217. image.UriSource = new Uri(dialog.FileName, UriKind.Absolute);
  218. image.EndInit();
  219.  
  220. BookPreview.Source = image;
  221. }
  222. } //ADD BOOK COVER
  223.  
  224. private void Submit_Click(object sender, RoutedEventArgs e) //SUBMIT DB CHANGES
  225. {
  226. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  227. {
  228. conn.Open();
  229.  
  230. using (NpgsqlCommand cmd = new NpgsqlCommand())
  231. {
  232. cmd.Connection = conn;
  233. cmd.CommandText = "UPDATE books SET name = @name, pageqty = @pageqty, publisher = @publisher, cd = @cd, dvd = @dvd, authors = @authors, year= @year " +
  234. "WHERE udk = " + ((DataRowView)BooksList.SelectedItem)["udk"];
  235.  
  236. cmd.Parameters.AddWithValue("name", ((DataRowView)BooksList.SelectedItem)["name"]);
  237. cmd.Parameters.AddWithValue("authors", (int)((DataRowView)BooksList.SelectedItem)["authors"]);
  238. cmd.Parameters.AddWithValue("publisher", (int)((DataRowView)BooksList.SelectedItem)["publisher"]);
  239.  
  240. cmd.Parameters.AddWithValue("pageqty", ((DataRowView)BooksList.SelectedItem)["pageqty"]);
  241. cmd.Parameters.AddWithValue("year", ((DataRowView)BooksList.SelectedItem)["year"]);
  242.  
  243.  
  244. cmd.Parameters.AddWithValue("cd", ((DataRowView)BooksList.SelectedItem)["cd"]);
  245. cmd.Parameters.AddWithValue("dvd", ((DataRowView)BooksList.SelectedItem)["dvd"]);
  246.  
  247. cmd.ExecuteNonQuery();
  248. }
  249. }
  250. DataGrid_Loaded(this, new RoutedEventArgs());
  251. }
  252.  
  253. private void Delete_Click(object sender, RoutedEventArgs e)
  254. {
  255. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  256. {
  257. conn.Open();
  258.  
  259. using (NpgsqlCommand cmd = new NpgsqlCommand())
  260. {
  261. cmd.Connection = conn;
  262. cmd.CommandText = "DELETE FROM books WHERE udk=" + ((DataRowView)BooksList.SelectedItem)["udk"];
  263.  
  264.  
  265. cmd.ExecuteNonQuery();
  266. }
  267.  
  268. DataGrid_Loaded(this, new RoutedEventArgs());
  269. }
  270. } //DELETE DB ENTRY
  271.  
  272.  
  273. private void BooksList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
  274. {
  275. if (updateExecuting == false)
  276. {
  277. using (NpgsqlConnection conn = new NpgsqlConnection(connString))
  278. {
  279. conn.Open();
  280.  
  281. using (NpgsqlCommand cmd = new NpgsqlCommand())
  282. {
  283. try
  284. {
  285. cmd.Connection = conn;
  286. cmd.CommandText = "SELECT * FROM " +
  287. "(SELECT books.name AS BookName, authors.name AS AuthorName, cover_img, pageqty, udk FROM books INNER JOIN authors ON " + ((DataRowView)BooksList.SelectedItem)["authors"] +
  288. "=authors.authorid) AS weird WHERE udk = " + ((DataRowView)BooksList.SelectedItem)["udk"];
  289. NpgsqlDataReader dr = cmd.ExecuteReader();
  290.  
  291. while (dr.Read())
  292. {
  293. BookName.Content = dr["bookname"];
  294. Author.Content = dr["authorname"];
  295. PageQty.Content = dr["pageqty"];
  296. BookCover.Source = PictureByteConverter.BytesToImage((byte[])dr["cover_img"]);
  297. }
  298. }
  299. catch(NullReferenceException)
  300. {
  301. BooksList.SelectedItem = BooksList.Items[0];
  302. BooksList_SelectionChanged(this, e);
  303. }
  304. }
  305. }
  306. }
  307. }
  308. }
  309. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement