Есть форма для добавления записи, как ее использовать и для изменения записи - 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();
}
}
}