using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.Data.SqlClient; namespace СУБД_Агентство { public partial class FormPotrebRielter : Form { public FormPotrebRielter() { InitializeComponent(); } // процент от продажи, процент от покупки double procprodazha, procpokupka; private void FormPotrebRielter_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'dbAgentstvoDataSet1.predlozhenie' table. You can move, or remove it, as needed. this.predlozhenieTableAdapter.Fill(this.dbAgentstvoDataSet1.predlozhenie); // TODO: This line of code loads data into the 'dbAgentstvoDataSet1.Potrebnost' table. You can move, or remove it, as needed. this.potrebnostTableAdapter.Fill(this.dbAgentstvoDataSet1.Potrebnost); // TODO: This line of code loads data into the 'dbAgentstvoDataSet1.Users' table. You can move, or remove it, as needed. this.usersTableAdapter.Fill(this.dbAgentstvoDataSet1.Users); // чтобы не отображались предложения для пустой таблицы с потребностями if (bsPotrebnost.Count == 0) bsPredlozheniya.Filter = "'False'"; // открыть файл для чтения StreamReader sr = new StreamReader("data.txt"); string t = sr.ReadLine(); // прочитать первую строку с макс. кол-вом клиентов procprodazha = Convert.ToDouble(sr.ReadLine()); // процент от продажи procpokupka = Convert.ToDouble(sr.ReadLine()); // процент от покупки sr.Close(); // закрыть файл } private void btnSdelka_Click(object sender, EventArgs e) { // код потребности и предложения, участвующих в сделке string idpotreb = dgvPotreb.CurrentRow.Cells[8].Value.ToString(); string idpredl = dgvPredl.CurrentRow.Cells[5].Value.ToString(); string famrielterpok = lblFamRielterPok.Text; // риелтер покупателя // id покупателя string idpok = dgvPotreb.CurrentRow.Cells[10].Value.ToString(); // id риелтера продавца string idrielterprod = dgvPredl.CurrentRow.Cells[7].Value.ToString(); // отфильтровать пользователя - покупателя bsUsersFam.Filter = "idusers = " + idpok; string fampok = lblFam.Text; // прочитать фамилию покупателя // отфильтровать пользователя - риелтера продавца bsUsersFam.Filter = "idusers = " + idrielterprod; string famrielterprod = lblFam.Text; // прочитать фамилию риелтера продавца // подключение к базе данных SqlConnection con = new SqlConnection(Form1.txtcon); con.Open(); // открыть подключение к базе данных // SQL-запрос для добавления записи string t = String.Format(@" insert into Sdelka (idpotrebnost, idpredlozhenie, datesdelka) values ({0}, {1}, '{2}')", idpotreb, idpredl, DateTime.Now.ToString("dd.MM.yyyy")); // установить формат даты на сервере SqlCommand query2 = new SqlCommand("set dateformat dmy", con); query2.ExecuteNonQuery(); // Добавить в таблицу Сделка новую запись SqlCommand query1 = new SqlCommand(t, con); query1.ExecuteNonQuery(); con.Close(); // закрыть подключение к базе данных // цена проданного объекта недвижимости double sum = Convert.ToDouble(dgvPredl.CurrentRow.Cells[4].Value); // комиссия для риелетра покупателя double sumrielterpok = sum * procpokupka / 100; // комиссия для риелетра продавца double sumrielterprod = sum * procprodazha / 100; sum += sumrielterpok + sumrielterprod; // предложение и потребность, участвующие в сделке завершены dgvPredl.CurrentRow.Cells[6].Value = true; bsPredlozheniya.EndEdit(); predlozhenieTableAdapter.Update(this.dbAgentstvoDataSet1.predlozhenie); // сначала обязательно сохранить изменения в таблице Предложения, а только // потом в таблице Потребности. Если сделать наоборот, то при сохранении // потребностей в таблице Предложения исчезнет выделенная строка dgvPotreb.CurrentRow.Cells[9].Value = true; bsPotrebnost.EndEdit(); potrebnostTableAdapter.Update(this.dbAgentstvoDataSet1.Potrebnost); // чтобы не отображались предложения для пустой таблицы с потребностями if (bsPotrebnost.Count == 0) bsPredlozheniya.Filter = "'False'"; MessageBox.Show(@"Сделка совершена. Покупатель " + fampok + " должен заплатить: " + sum + "\nРиелтер покупателя " + famrielterpok + " получает: " + sumrielterpok + "\nРиелтер продавца " + famrielterprod + " получает: " + sumrielterprod); } private void dataGridView1_SelectionChanged(object sender, EventArgs e) { // если нет выделенной потребности, то выйти из процедуры if (dgvPotreb.CurrentRow == null) return; // прочитать из DataGridView параметры выделенной потребности int minplosh = Convert.ToInt32(dgvPotreb.CurrentRow.Cells[0].Value); int maxplosh = Convert.ToInt32(dgvPotreb.CurrentRow.Cells[1].Value); int minetazh = Convert.ToInt32(dgvPotreb.CurrentRow.Cells[2].Value); int maxetazh = Convert.ToInt32(dgvPotreb.CurrentRow.Cells[3].Value); int minkomnat = Convert.ToInt32(dgvPotreb.CurrentRow.Cells[4].Value); int maxkomnat = Convert.ToInt32(dgvPotreb.CurrentRow.Cells[5].Value); double mincena = Convert.ToDouble(dgvPotreb.CurrentRow.Cells[6].Value); double maxcena = Convert.ToDouble(dgvPotreb.CurrentRow.Cells[7].Value); string t = String.Format("plosh >= {0} and plosh <= {1} and etazh >= {2} and etazh <= {3} and komnat >= {4} and komnat <= {5} and cena >= {6} and cena <= {7} and zaversheno = 'False'", minplosh, maxplosh, minetazh, maxetazh, minkomnat, maxkomnat, mincena, maxcena); // отфильтровать предложения, подходящие для реализации потребности bsPredlozheniya.Filter = t; } } }