Есть форма для добавления записи, как ее использовать и для изменения записи - C#
Формулировка задачи:
Есть форма для добавления записи, хочу ее использоавть и для изменения записи.
Изменить свойства кнопок и т.д, заполнить поля я могу через консруктор копирования формы, а как переопределить методы при обработке событий????
Решение задачи: «Есть форма для добавления записи, как ее использовать и для изменения записи»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Data; //DataTable using System.Data.OleDb; //OleDbDataAdapter using System.IO; using Microsoft.Win32; using System.ComponentModel; namespace Sport { /// <summary> /// Логика взаимодействия для Window1.xaml /// </summary> public partial class Window1 : Window { MemoryStream tmp_img; FileInfo t; db bd1 = new db(); DataTable tabel_clubs, tabel_countries; public Window1() { InitializeComponent(); tabel_clubs = bd1.GetData("SELECT Код,Название FROM Clubs ORDER BY Код"); comboBox3.ItemsSource=MyControls.ItemCollection_fromtbl(tabel_clubs,"Название"); //Генерировался список клубов tabel_countries = bd1.GetData("SELECT * FROM Countries ORDER BY Код"); comboBox1.ItemsSource = MyControls.ItemCollection_fromtbl(tabel_countries, "Название"); //Генерировался список стран } public Window1(DataRow reg_data) { InitializeComponent(); this.Title = "Изменение записи игрока"; button2.Content = "Изменить"; tabel_clubs = bd1.GetData("SELECT Код,Название FROM Clubs ORDER BY Код"); comboBox3.ItemsSource = MyControls.ItemCollection_fromtbl(tabel_clubs, "Название"); //Генерировался список клубов tabel_countries = bd1.GetData("SELECT * FROM Countries ORDER BY Код"); comboBox1.ItemsSource = MyControls.ItemCollection_fromtbl(tabel_countries, "Название"); //Генерировался список стран textBox1.Text = reg_data["Фамилия"].ToString(); textBox2.Text = reg_data["Имя"].ToString(); maskedTextBoxDate.Text = reg_data["Дата_рождения"].ToString(); comboBox3.SelectedItem = reg_data["Клуб_str"].ToString() ; comboBox1.SelectedItem = reg_data["Национальность_str"].ToString(); foreach (ComboBoxItem tmp_coll in comboBox2.Items) { if (reg_data["Позиция"].ToString() == tmp_coll.Content.ToString()) comboBox2.SelectedItem = tmp_coll; } t = new FileInfo(AppDomain.CurrentDomain.BaseDirectory+reg_data["Фото"]); tmp_img = new MemoryStream(File.ReadAllBytes(t.FullName)); BitmapImage ty = new BitmapImage(); ty.BeginInit(); ty.StreamSource = tmp_img; ty.EndInit(); image1.Source = ty; //Заполнение текущего } void clear_allbox() { textBox1.Clear(); textBox2.Clear(); maskedTextBoxDate.Clear(); comboBox1.Text = ""; comboBox2.Text = ""; comboBox3.Text = ""; t = null; image1.Source = new BitmapImage(new Uri("pack://application:,,,/Images/nofoto.jpg")); } private void button1_Click(object sender, RoutedEventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Файлы изображений|*.jpg;*.bmp;*.png;*.jpeg"; // Filter files by extension dlg.Multiselect = false; Nullable<bool> result = dlg.ShowDialog(); if (result == true) { try { string name = dlg.FileName; t = new FileInfo(name); tmp_img = new MemoryStream(File.ReadAllBytes(t.FullName)); BitmapImage ty = new BitmapImage(); ty.BeginInit(); ty.StreamSource = tmp_img; ty.EndInit(); image1.Source = ty; } catch (Exception w) { MessageBox.Show(w.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } } private void button2_Click(object sender, RoutedEventArgs e) { try { if (textBox1.Text != "" && textBox2.Text != "" && maskedTextBoxDate.Text != "" && comboBox1.Text != "" && comboBox2.Text != "" && t.Exists) { try { string Fam = textBox1.Text; string Nam = textBox2.Text; string bd = maskedTextBoxDate.Text.ToString(); string pos = comboBox2.Text; string nat = comboBox1.Text; string club = comboBox3.Text; foreach (DataRow tmp in tabel_clubs.Select()) { if (tmp[1].ToString() == comboBox3.Text) { club = tmp[0].ToString(); break; } } foreach (DataRow tmp in tabel_countries.Select()) { if (tmp["Название"].ToString() == comboBox1.Text) { nat = tmp["Код"].ToString(); break; } } bd1.Add_del("INSERT INTO Players (Фамилия,Имя,Дата_Рождения,Позиция,Национальность,Клуб) values('" + Fam + "','" + Nam + "','" + bd + "','" + pos + "','" + nat + "'," + club + ")", "Players"); var tmp_row = bd1.Name_imgfile("Players"); var Current_id = Convert.ToInt32(tmp_row[0]); var tmp_name = Current_id; FileInfo new_file = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "Foto_Players/" + tmp_name + t.Extension); File.Copy(t.FullName, new_file.FullName, true); //Код выше копирует изображение в указанную папку string photo = "Foto_Players/" + tmp_name + t.Extension; bd1.Add_del("UPDATE Players SET Фото='"+photo+"' WHERE Код="+Current_id, "Players"); tmp_img.Dispose(); clear_allbox(); image2.Visibility = Visibility.Visible; } catch (Exception w) { MessageBox.Show(w.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } else MessageBox.Show("Не все поля заполнены!!!"); } catch (Exception w) { MessageBox.Show(w.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } private void button2_MouseLeave(object sender, MouseEventArgs e) { image2.Visibility = Visibility.Hidden; } private void button3_Click(object sender, RoutedEventArgs e) { Close(); } private void cancelButton_Click(object sender, RoutedEventArgs e) { clear_allbox(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д