| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace СУБД_Швейная_фабрика{    public partial class FormGetMaterial : Form    {        public FormGetMaterial()        {            InitializeComponent();        }        public struct Tkani        {            public string NameTkan, ColorTkan, WidthTkan, LengthTkan, Description;            public Image PhotoTkan;        }        List<Tkani> LstTkani = new List<Tkani>();        private void BtnLoadPhotoTkan_Click(object sender, EventArgs e)        {            try            {                if (openFileDialog1.ShowDialog() == DialogResult.OK)                    PbxPhotoTkan.Image = Image.FromFile(openFileDialog1.FileName);            }            catch { }        }        private void BtnClearPhotoTkan_Click(object sender, EventArgs e)        {            DialogResult res = MessageBox.Show("Очистить фотографию?", "Внимание!",                MessageBoxButtons.YesNo, MessageBoxIcon.Question);            if (res == DialogResult.Yes)                PbxPhotoTkan.Image = null;        }        private void BtnAddTkan_Click(object sender, EventArgs e)        {            Tkani Tk1 = new Tkani();  // создать переменную для добавляемой ткани            // прочитать в переменную данные из текстовых полей            Tk1.NameTkan = TbxNameTkan.Text;            Tk1.ColorTkan = TbxColorTkan.Text;            Tk1.WidthTkan = TbxWidthTkan.Text;            Tk1.LengthTkan = TbxLengthTkan.Text;            Tk1.Description = TbxDescriptionTkan.Text;            // взять фотографию ткани из PictureBox            Tk1.PhotoTkan = PbxPhotoTkan.Image;            LstTkani.Add(Tk1);  // добавить новую ткань в lstTkani            // добавить новую ткань в DataGridView            DgvTkani.Rows.Add(Tk1.NameTkan, Tk1.ColorTkan, Tk1.WidthTkan, Tk1.LengthTkan, Tk1.Description);        }        private void BtnDelTkan_Click(object sender, EventArgs e)        {            // номер строки, выделенной в DataGridView с тканями            int NumTkan = DgvTkani.CurrentRow.Index;            // если пользователь выделил в списке какую-то ткань            if (NumTkan >= 0)            {                DialogResult res = MessageBox.Show("Удалить выделенную ткань?",                     "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);                if (res == DialogResult.Yes)                {                    // удалить выделенную ткань из обоих списков                    LstTkani.RemoveAt(NumTkan);                    DgvTkani.Rows.RemoveAt(NumTkan);                }            }        }        private void BtnOK_Click(object sender, EventArgs e)        {            SqlConnection con = new SqlConnection(Properties.Settings.Default.fab2021ConnectionString);            foreach (Tkani Tk1 in LstTkani)            {                con.Open();                if (Tk1.PhotoTkan != null)  // если есть изображение                {                    string t = string.Format(@"insert into Tkani (nametkan, color, width, length, description, phototkan)values ('{0}', '{1}', {2}, {3}, '{4}', @phototkan)",    Tk1.NameTkan, Tk1.ColorTkan, Tk1.WidthTkan, Tk1.LengthTkan, Tk1.Description);                    SqlCommand query1 = new SqlCommand(t, con);                    MemoryStream ms = new MemoryStream();  // создать поток                    // сохранить в поток изображение в формате Jpeg                    Tk1.PhotoTkan.Save(ms, ImageFormat.Jpeg);                    // добавить изображение в виде параметра к запросу                    query1.Parameters.AddWithValue("@phototkan", ms.ToArray());                    query1.ExecuteNonQuery();                }                else                {                    string t = string.Format(@"insert into Tkani (nametkan, color, width, length, description)values ('{0}', '{1}', {2}, {3}, '{4}')",    Tk1.NameTkan, Tk1.ColorTkan, Tk1.WidthTkan, Tk1.LengthTkan, Tk1.Description);                    SqlCommand query1 = new SqlCommand(t, con);                    query1.ExecuteNonQuery();                }                con.Close();            }            MessageBox.Show("Документ принят к учету.", "Внимание!",                 MessageBoxButtons.OK, MessageBoxIcon.Information);            this.Close();        }    }}
 |