Готовая лабораторная 4 по СУБД
This commit is contained in:
parent
a37c6ef90f
commit
a27716cced
25
BulletinBoard/BulletinBoard.sln
Normal file
25
BulletinBoard/BulletinBoard.sln
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.9.34622.214
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BulletinBoard", "BulletinBoard\BulletinBoard.csproj", "{262F1FD4-C5DD-42F3-B47A-8CB10414C3DE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{262F1FD4-C5DD-42F3-B47A-8CB10414C3DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{262F1FD4-C5DD-42F3-B47A-8CB10414C3DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{262F1FD4-C5DD-42F3-B47A-8CB10414C3DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{262F1FD4-C5DD-42F3-B47A-8CB10414C3DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {66435ADB-84E8-4E5D-9E06-34B5125842AE}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
23
BulletinBoard/BulletinBoard/AbstractManagmentDatabase.cs
Normal file
23
BulletinBoard/BulletinBoard/AbstractManagmentDatabase.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public abstract class AbstractManagmentDatabase
|
||||
{
|
||||
public abstract DataTable getEntryById(string tableName, int id);
|
||||
public abstract Object getRowTableById(string tableName, string columnName, int id);
|
||||
public abstract Object getRowTableById(DataTable table, string columnName, int i);
|
||||
public abstract void ExecuteNonQuery(string query);
|
||||
public abstract DataTable ExecuteQuery(string query);
|
||||
public abstract DataTable getAllEntry(string tableName);
|
||||
public abstract void insertInto(string tableName, params string[] values);
|
||||
public abstract void deleteEntry(string tableName, int id);
|
||||
public abstract void deleteEntry(string tableName, string name);
|
||||
public abstract void reduceSeq(string seq, int currval);
|
||||
}
|
||||
}
|
274
BulletinBoard/BulletinBoard/AdsForm/CreateAdsForm.Designer.cs
generated
Normal file
274
BulletinBoard/BulletinBoard/AdsForm/CreateAdsForm.Designer.cs
generated
Normal file
@ -0,0 +1,274 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class CreateAdsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
buttonCreateAd = new Button();
|
||||
labelHeading = new Label();
|
||||
textBoxHeading = new TextBox();
|
||||
textBoxPrice = new TextBox();
|
||||
labelPrice = new Label();
|
||||
textBoxDate = new TextBox();
|
||||
labelDate = new Label();
|
||||
labelSubcategory = new Label();
|
||||
labelCategory = new Label();
|
||||
textBoxStatus = new TextBox();
|
||||
labelStatus = new Label();
|
||||
labelClient = new Label();
|
||||
comboBoxSubcategory = new ComboBox();
|
||||
comboBoxCategory = new ComboBox();
|
||||
comboBoxClient = new ComboBox();
|
||||
label1 = new Label();
|
||||
comboBoxCity = new ComboBox();
|
||||
label2 = new Label();
|
||||
comboBoxRegion = new ComboBox();
|
||||
SuspendLayout();
|
||||
//
|
||||
// buttonCreateAd
|
||||
//
|
||||
buttonCreateAd.Location = new Point(43, 443);
|
||||
buttonCreateAd.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonCreateAd.Name = "buttonCreateAd";
|
||||
buttonCreateAd.Size = new Size(239, 29);
|
||||
buttonCreateAd.TabIndex = 0;
|
||||
buttonCreateAd.Text = "Разместить объявление";
|
||||
buttonCreateAd.UseVisualStyleBackColor = true;
|
||||
buttonCreateAd.Click += buttonCreateAd_Click;
|
||||
//
|
||||
// labelHeading
|
||||
//
|
||||
labelHeading.AutoSize = true;
|
||||
labelHeading.Location = new Point(43, 8);
|
||||
labelHeading.Name = "labelHeading";
|
||||
labelHeading.Size = new Size(65, 15);
|
||||
labelHeading.TabIndex = 1;
|
||||
labelHeading.Text = "Заголовок";
|
||||
//
|
||||
// textBoxHeading
|
||||
//
|
||||
textBoxHeading.Location = new Point(43, 26);
|
||||
textBoxHeading.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxHeading.Name = "textBoxHeading";
|
||||
textBoxHeading.Size = new Size(239, 23);
|
||||
textBoxHeading.TabIndex = 2;
|
||||
//
|
||||
// textBoxPrice
|
||||
//
|
||||
textBoxPrice.Location = new Point(43, 72);
|
||||
textBoxPrice.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxPrice.Name = "textBoxPrice";
|
||||
textBoxPrice.Size = new Size(239, 23);
|
||||
textBoxPrice.TabIndex = 4;
|
||||
//
|
||||
// labelPrice
|
||||
//
|
||||
labelPrice.AutoSize = true;
|
||||
labelPrice.Location = new Point(43, 55);
|
||||
labelPrice.Name = "labelPrice";
|
||||
labelPrice.Size = new Size(35, 15);
|
||||
labelPrice.TabIndex = 3;
|
||||
labelPrice.Text = "Цена";
|
||||
//
|
||||
// textBoxDate
|
||||
//
|
||||
textBoxDate.Location = new Point(43, 118);
|
||||
textBoxDate.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxDate.Name = "textBoxDate";
|
||||
textBoxDate.Size = new Size(239, 23);
|
||||
textBoxDate.TabIndex = 6;
|
||||
//
|
||||
// labelDate
|
||||
//
|
||||
labelDate.AutoSize = true;
|
||||
labelDate.Location = new Point(43, 101);
|
||||
labelDate.Name = "labelDate";
|
||||
labelDate.Size = new Size(105, 15);
|
||||
labelDate.TabIndex = 5;
|
||||
labelDate.Text = "Дата размещения";
|
||||
//
|
||||
// labelSubcategory
|
||||
//
|
||||
labelSubcategory.AutoSize = true;
|
||||
labelSubcategory.Location = new Point(43, 292);
|
||||
labelSubcategory.Name = "labelSubcategory";
|
||||
labelSubcategory.Size = new Size(84, 15);
|
||||
labelSubcategory.TabIndex = 11;
|
||||
labelSubcategory.Text = "Подкатегория";
|
||||
//
|
||||
// labelCategory
|
||||
//
|
||||
labelCategory.AutoSize = true;
|
||||
labelCategory.Location = new Point(43, 246);
|
||||
labelCategory.Name = "labelCategory";
|
||||
labelCategory.Size = new Size(63, 15);
|
||||
labelCategory.TabIndex = 9;
|
||||
labelCategory.Text = "Категория";
|
||||
//
|
||||
// textBoxStatus
|
||||
//
|
||||
textBoxStatus.Location = new Point(43, 166);
|
||||
textBoxStatus.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxStatus.Name = "textBoxStatus";
|
||||
textBoxStatus.Size = new Size(239, 23);
|
||||
textBoxStatus.TabIndex = 8;
|
||||
//
|
||||
// labelStatus
|
||||
//
|
||||
labelStatus.AutoSize = true;
|
||||
labelStatus.Location = new Point(43, 148);
|
||||
labelStatus.Name = "labelStatus";
|
||||
labelStatus.Size = new Size(43, 15);
|
||||
labelStatus.TabIndex = 7;
|
||||
labelStatus.Text = "Статус";
|
||||
//
|
||||
// labelClient
|
||||
//
|
||||
labelClient.AutoSize = true;
|
||||
labelClient.Location = new Point(43, 196);
|
||||
labelClient.Name = "labelClient";
|
||||
labelClient.Size = new Size(46, 15);
|
||||
labelClient.TabIndex = 13;
|
||||
labelClient.Text = "Клиент";
|
||||
//
|
||||
// comboBoxSubcategory
|
||||
//
|
||||
comboBoxSubcategory.FormattingEnabled = true;
|
||||
comboBoxSubcategory.Location = new Point(43, 310);
|
||||
comboBoxSubcategory.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxSubcategory.Name = "comboBoxSubcategory";
|
||||
comboBoxSubcategory.Size = new Size(239, 23);
|
||||
comboBoxSubcategory.TabIndex = 15;
|
||||
//
|
||||
// comboBoxCategory
|
||||
//
|
||||
comboBoxCategory.FormattingEnabled = true;
|
||||
comboBoxCategory.Location = new Point(43, 263);
|
||||
comboBoxCategory.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxCategory.Name = "comboBoxCategory";
|
||||
comboBoxCategory.Size = new Size(239, 23);
|
||||
comboBoxCategory.TabIndex = 16;
|
||||
//
|
||||
// comboBoxClient
|
||||
//
|
||||
comboBoxClient.FormattingEnabled = true;
|
||||
comboBoxClient.Location = new Point(43, 213);
|
||||
comboBoxClient.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxClient.Name = "comboBoxClient";
|
||||
comboBoxClient.Size = new Size(239, 23);
|
||||
comboBoxClient.TabIndex = 17;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(43, 341);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(46, 15);
|
||||
label1.TabIndex = 22;
|
||||
label1.Text = "Регион";
|
||||
//
|
||||
// comboBoxCity
|
||||
//
|
||||
comboBoxCity.FormattingEnabled = true;
|
||||
comboBoxCity.Location = new Point(43, 400);
|
||||
comboBoxCity.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxCity.Name = "comboBoxCity";
|
||||
comboBoxCity.Size = new Size(239, 23);
|
||||
comboBoxCity.TabIndex = 23;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new Point(43, 384);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(40, 15);
|
||||
label2.TabIndex = 24;
|
||||
label2.Text = "Город";
|
||||
//
|
||||
// comboBoxRegion
|
||||
//
|
||||
comboBoxRegion.FormattingEnabled = true;
|
||||
comboBoxRegion.Location = new Point(43, 359);
|
||||
comboBoxRegion.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxRegion.Name = "comboBoxRegion";
|
||||
comboBoxRegion.Size = new Size(239, 23);
|
||||
comboBoxRegion.TabIndex = 25;
|
||||
//
|
||||
// CreateAdsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(324, 483);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(comboBoxRegion);
|
||||
Controls.Add(comboBoxCity);
|
||||
Controls.Add(comboBoxClient);
|
||||
Controls.Add(comboBoxCategory);
|
||||
Controls.Add(comboBoxSubcategory);
|
||||
Controls.Add(labelClient);
|
||||
Controls.Add(labelSubcategory);
|
||||
Controls.Add(labelCategory);
|
||||
Controls.Add(textBoxStatus);
|
||||
Controls.Add(labelStatus);
|
||||
Controls.Add(textBoxDate);
|
||||
Controls.Add(labelDate);
|
||||
Controls.Add(textBoxPrice);
|
||||
Controls.Add(labelPrice);
|
||||
Controls.Add(textBoxHeading);
|
||||
Controls.Add(labelHeading);
|
||||
Controls.Add(buttonCreateAd);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "CreateAdsForm";
|
||||
Text = "Объявления";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button buttonCreateAd;
|
||||
private Label labelHeading;
|
||||
private TextBox textBoxHeading;
|
||||
private TextBox textBoxPrice;
|
||||
private Label labelPrice;
|
||||
private TextBox textBoxDate;
|
||||
private Label labelDate;
|
||||
private Label labelSubcategory;
|
||||
private Label labelCategory;
|
||||
private TextBox textBoxStatus;
|
||||
private Label labelStatus;
|
||||
private Label labelClient;
|
||||
private ComboBox comboBoxSubcategory;
|
||||
private ComboBox comboBoxCategory;
|
||||
private ComboBox comboBoxClient;
|
||||
private Label label1;
|
||||
private ComboBox comboBoxRegion;
|
||||
private Label label2;
|
||||
private ComboBox comboBoxCity;
|
||||
}
|
||||
}
|
103
BulletinBoard/BulletinBoard/AdsForm/CreateAdsForm.cs
Normal file
103
BulletinBoard/BulletinBoard/AdsForm/CreateAdsForm.cs
Normal file
@ -0,0 +1,103 @@
|
||||
using System.Data;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class CreateAdsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public CreateAdsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonCreateAd_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] client = comboBoxClient.SelectedItem.ToString().Split(" ");
|
||||
string[] category = comboBoxCategory.SelectedItem.ToString().Split(" ");
|
||||
string[] subcategory = comboBoxSubcategory.SelectedItem.ToString().Split(" ");
|
||||
string[] region = comboBoxCategory.SelectedItem.ToString().Split(" ");
|
||||
string[] city = comboBoxSubcategory.SelectedItem.ToString().Split(" ");
|
||||
|
||||
string heading = textBoxHeading.Text;
|
||||
string price = textBoxPrice.Text;
|
||||
string date = textBoxDate.Text;
|
||||
string status = textBoxStatus.Text;
|
||||
string client_id = client[0];
|
||||
string category_id = category[0];
|
||||
string subcategory_id = subcategory[0];
|
||||
string region_id = region[0];
|
||||
string city_id = city[0];
|
||||
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.insertInto("ads", $"'{heading}'", price, $"'{date}'", $"'{status}'", client_id, category_id, subcategory_id, region_id, city_id);
|
||||
MessageBox.Show("Äîáàâëåíî!");
|
||||
LoadData();
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Äîáàâëåíî! Âðåìÿ âûïîëíåíèÿ: {duration.TotalMilliseconds} ìñ");
|
||||
|
||||
// Çàêðûòü òåêóùóþ ôîðìó ïîñëå âûïîëíåíèÿ äåéñòâèé
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Íå óäàëîñü äîáàâèòü");
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
comboBoxCategory.Items.Clear();
|
||||
comboBoxSubcategory.Items.Clear();
|
||||
comboBoxClient.Items.Clear();
|
||||
comboBoxRegion.Items.Clear();
|
||||
comboBoxCity.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("CATEGORIES");
|
||||
string[] id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = managmentDatabase.getRowTableById(result, "categories_id", i).ToString() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString();
|
||||
comboBoxCategory.Items.Add(id_names[i]);
|
||||
}
|
||||
|
||||
result = managmentDatabase.getAllEntry("SUBCATEGORIES");
|
||||
id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = managmentDatabase.getRowTableById(result, "subcategories_id", i).ToString() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString();
|
||||
comboBoxSubcategory.Items.Add(id_names[i]);
|
||||
}
|
||||
|
||||
result = managmentDatabase.getAllEntry("CLIENTS");
|
||||
string[] id_names_surnames = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names_surnames[i] = managmentDatabase.getRowTableById(result, "clients_id", i).ToString().Trim() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString().Trim() + " " + managmentDatabase.getRowTableById(result, "surname", i).ToString().Trim();
|
||||
comboBoxClient.Items.Add(id_names_surnames[i]);
|
||||
}
|
||||
|
||||
result = managmentDatabase.getAllEntry("REGIONS");
|
||||
id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = managmentDatabase.getRowTableById(result, "regions_id", i).ToString() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString();
|
||||
comboBoxRegion.Items.Add(id_names[i]);
|
||||
}
|
||||
|
||||
|
||||
result = managmentDatabase.getAllEntry("CITIES");
|
||||
id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = managmentDatabase.getRowTableById(result, "cities_id", i).ToString() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString();
|
||||
comboBoxCity.Items.Add(id_names[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/AdsForm/CreateAdsForm.resx
Normal file
120
BulletinBoard/BulletinBoard/AdsForm/CreateAdsForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
84
BulletinBoard/BulletinBoard/AdsForm/DeleteAdsForm.Designer.cs
generated
Normal file
84
BulletinBoard/BulletinBoard/AdsForm/DeleteAdsForm.Designer.cs
generated
Normal file
@ -0,0 +1,84 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class DeleteAdsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.buttonDeleteAd = new System.Windows.Forms.Button();
|
||||
this.comboBoxDeleteAds = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(80, 22);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(338, 20);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Выберите объявление, которое хотите удалить";
|
||||
//
|
||||
// buttonDeleteAd
|
||||
//
|
||||
this.buttonDeleteAd.Location = new System.Drawing.Point(151, 113);
|
||||
this.buttonDeleteAd.Name = "buttonDeleteAd";
|
||||
this.buttonDeleteAd.Size = new System.Drawing.Size(186, 37);
|
||||
this.buttonDeleteAd.TabIndex = 1;
|
||||
this.buttonDeleteAd.Text = "Удалить";
|
||||
this.buttonDeleteAd.UseVisualStyleBackColor = true;
|
||||
this.buttonDeleteAd.Click += new System.EventHandler(this.buttonDeleteAd_Click);
|
||||
//
|
||||
// comboBoxDeleteAds
|
||||
//
|
||||
this.comboBoxDeleteAds.FormattingEnabled = true;
|
||||
this.comboBoxDeleteAds.Location = new System.Drawing.Point(40, 64);
|
||||
this.comboBoxDeleteAds.Name = "comboBoxDeleteAds";
|
||||
this.comboBoxDeleteAds.Size = new System.Drawing.Size(419, 28);
|
||||
this.comboBoxDeleteAds.TabIndex = 2;
|
||||
//
|
||||
// DeleteAdsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(505, 175);
|
||||
this.Controls.Add(this.comboBoxDeleteAds);
|
||||
this.Controls.Add(this.buttonDeleteAd);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Name = "DeleteAdsForm";
|
||||
this.Text = "Удалить объявление";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Button buttonDeleteAd;
|
||||
private ComboBox comboBoxDeleteAds;
|
||||
}
|
||||
}
|
71
BulletinBoard/BulletinBoard/AdsForm/DeleteAdsForm.cs
Normal file
71
BulletinBoard/BulletinBoard/AdsForm/DeleteAdsForm.cs
Normal file
@ -0,0 +1,71 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class DeleteAdsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
private int setval_seq;
|
||||
public DeleteAdsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonDeleteAd_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] ads = comboBoxDeleteAds.SelectedItem.ToString().Split("|");
|
||||
string ad_id = ads[0].Trim();
|
||||
string query = $"DELETE FROM ADS WHERE ads_id = {ad_id}";
|
||||
string query_seq_reduction = $"SELECT setval('seq_ads', {setval_seq - 1});";
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.deleteEntry("ads", int.Parse(ad_id));
|
||||
if (setval_seq > 0) managmentDatabase.reduceSeq("seq_ads", setval_seq);
|
||||
MessageBox.Show("Удалено!");
|
||||
LoadData();
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить");
|
||||
}
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxDeleteAds.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("ADS");
|
||||
setval_seq = result.Rows.Count;
|
||||
string Ads = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
setval_seq = Math.Max(Convert.ToInt32(managmentDatabase.getRowTableById(result, "ads_id", i)), setval_seq);
|
||||
Ads = managmentDatabase.getRowTableById(result, "ads_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "heading", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "price", i).ToString() + " | " +
|
||||
((DateTime)managmentDatabase.getRowTableById(result, "date_of_placement", i)).ToString("dd.MM.yyy") + " | " +
|
||||
managmentDatabase.getRowTableById(result, "status", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "client_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "category_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "subcategory_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "region_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "city_id", i).ToString() + "\n";
|
||||
comboBoxDeleteAds.Items.Add(Ads);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
60
BulletinBoard/BulletinBoard/AdsForm/DeleteAdsForm.resx
Normal file
60
BulletinBoard/BulletinBoard/AdsForm/DeleteAdsForm.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
74
BulletinBoard/BulletinBoard/AdsForm/ListAdsForm.Designer.cs
generated
Normal file
74
BulletinBoard/BulletinBoard/AdsForm/ListAdsForm.Designer.cs
generated
Normal file
@ -0,0 +1,74 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class ListAdsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.labelListAds = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(186, 25);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Список объявлений";
|
||||
//
|
||||
// labelListAds
|
||||
//
|
||||
this.labelListAds.AutoSize = true;
|
||||
this.labelListAds.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.labelListAds.Location = new System.Drawing.Point(12, 47);
|
||||
this.labelListAds.Name = "labelListAds";
|
||||
this.labelListAds.Size = new System.Drawing.Size(0, 23);
|
||||
this.labelListAds.TabIndex = 1;
|
||||
//
|
||||
// ListAdsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Controls.Add(this.labelListAds);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Name = "ListAdsForm";
|
||||
this.Text = "ListAdsForm";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label labelListAds;
|
||||
}
|
||||
}
|
50
BulletinBoard/BulletinBoard/AdsForm/ListAdsForm.cs
Normal file
50
BulletinBoard/BulletinBoard/AdsForm/ListAdsForm.cs
Normal file
@ -0,0 +1,50 @@
|
||||
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.Windows.Forms.VisualStyles;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class ListAdsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public ListAdsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
DataTable result = managmentDatabase.getAllEntry("ADS");
|
||||
string listAds = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
listAds += managmentDatabase.getRowTableById(result, "ads_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "heading", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "price", i).ToString() + " | " +
|
||||
((DateTime)managmentDatabase.getRowTableById(result, "date_of_placement", i)).ToString("dd.MM.yyy") + " | " +
|
||||
managmentDatabase.getRowTableById(result, "status", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "client_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "category_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "subcategory_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "region_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "city_id", i).ToString() + "\n";
|
||||
}
|
||||
labelListAds.Text = listAds;
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Список загружен! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
60
BulletinBoard/BulletinBoard/AdsForm/ListAdsForm.resx
Normal file
60
BulletinBoard/BulletinBoard/AdsForm/ListAdsForm.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
251
BulletinBoard/BulletinBoard/AdsForm/UpdateAdsForm.Designer.cs
generated
Normal file
251
BulletinBoard/BulletinBoard/AdsForm/UpdateAdsForm.Designer.cs
generated
Normal file
@ -0,0 +1,251 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class UpdateAdsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
comboBoxClient = new ComboBox();
|
||||
comboBoxCategory = new ComboBox();
|
||||
comboBoxSubcategory = new ComboBox();
|
||||
labelClient = new Label();
|
||||
labelSubcategory = new Label();
|
||||
labelCategory = new Label();
|
||||
textBoxStatus = new TextBox();
|
||||
labelStatus = new Label();
|
||||
textBoxDate = new TextBox();
|
||||
labelDate = new Label();
|
||||
textBoxPrice = new TextBox();
|
||||
labelPrice = new Label();
|
||||
textBoxHeading = new TextBox();
|
||||
labelHeading = new Label();
|
||||
buttonUpdateAd = new Button();
|
||||
label1 = new Label();
|
||||
comboBoxUpdateAd = new ComboBox();
|
||||
SuspendLayout();
|
||||
//
|
||||
// comboBoxClient
|
||||
//
|
||||
comboBoxClient.FormattingEnabled = true;
|
||||
comboBoxClient.Location = new Point(81, 278);
|
||||
comboBoxClient.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxClient.Name = "comboBoxClient";
|
||||
comboBoxClient.Size = new Size(239, 23);
|
||||
comboBoxClient.TabIndex = 32;
|
||||
//
|
||||
// comboBoxCategory
|
||||
//
|
||||
comboBoxCategory.FormattingEnabled = true;
|
||||
comboBoxCategory.Location = new Point(81, 328);
|
||||
comboBoxCategory.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxCategory.Name = "comboBoxCategory";
|
||||
comboBoxCategory.Size = new Size(239, 23);
|
||||
comboBoxCategory.TabIndex = 31;
|
||||
//
|
||||
// comboBoxSubcategory
|
||||
//
|
||||
comboBoxSubcategory.FormattingEnabled = true;
|
||||
comboBoxSubcategory.Location = new Point(81, 375);
|
||||
comboBoxSubcategory.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxSubcategory.Name = "comboBoxSubcategory";
|
||||
comboBoxSubcategory.Size = new Size(239, 23);
|
||||
comboBoxSubcategory.TabIndex = 30;
|
||||
//
|
||||
// labelClient
|
||||
//
|
||||
labelClient.AutoSize = true;
|
||||
labelClient.Location = new Point(81, 261);
|
||||
labelClient.Name = "labelClient";
|
||||
labelClient.Size = new Size(46, 15);
|
||||
labelClient.TabIndex = 29;
|
||||
labelClient.Text = "Клиент";
|
||||
//
|
||||
// labelSubcategory
|
||||
//
|
||||
labelSubcategory.AutoSize = true;
|
||||
labelSubcategory.Location = new Point(81, 358);
|
||||
labelSubcategory.Name = "labelSubcategory";
|
||||
labelSubcategory.Size = new Size(84, 15);
|
||||
labelSubcategory.TabIndex = 28;
|
||||
labelSubcategory.Text = "Подкатегория";
|
||||
//
|
||||
// labelCategory
|
||||
//
|
||||
labelCategory.AutoSize = true;
|
||||
labelCategory.Location = new Point(81, 311);
|
||||
labelCategory.Name = "labelCategory";
|
||||
labelCategory.Size = new Size(63, 15);
|
||||
labelCategory.TabIndex = 27;
|
||||
labelCategory.Text = "Категория";
|
||||
//
|
||||
// textBoxStatus
|
||||
//
|
||||
textBoxStatus.Location = new Point(81, 231);
|
||||
textBoxStatus.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxStatus.Name = "textBoxStatus";
|
||||
textBoxStatus.Size = new Size(239, 23);
|
||||
textBoxStatus.TabIndex = 26;
|
||||
//
|
||||
// labelStatus
|
||||
//
|
||||
labelStatus.AutoSize = true;
|
||||
labelStatus.Location = new Point(81, 214);
|
||||
labelStatus.Name = "labelStatus";
|
||||
labelStatus.Size = new Size(43, 15);
|
||||
labelStatus.TabIndex = 25;
|
||||
labelStatus.Text = "Статус";
|
||||
//
|
||||
// textBoxDate
|
||||
//
|
||||
textBoxDate.Location = new Point(81, 184);
|
||||
textBoxDate.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxDate.Name = "textBoxDate";
|
||||
textBoxDate.Size = new Size(239, 23);
|
||||
textBoxDate.TabIndex = 24;
|
||||
//
|
||||
// labelDate
|
||||
//
|
||||
labelDate.AutoSize = true;
|
||||
labelDate.Location = new Point(81, 166);
|
||||
labelDate.Name = "labelDate";
|
||||
labelDate.Size = new Size(105, 15);
|
||||
labelDate.TabIndex = 23;
|
||||
labelDate.Text = "Дата размещения";
|
||||
//
|
||||
// textBoxPrice
|
||||
//
|
||||
textBoxPrice.Location = new Point(81, 137);
|
||||
textBoxPrice.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxPrice.Name = "textBoxPrice";
|
||||
textBoxPrice.Size = new Size(239, 23);
|
||||
textBoxPrice.TabIndex = 22;
|
||||
//
|
||||
// labelPrice
|
||||
//
|
||||
labelPrice.AutoSize = true;
|
||||
labelPrice.Location = new Point(81, 120);
|
||||
labelPrice.Name = "labelPrice";
|
||||
labelPrice.Size = new Size(35, 15);
|
||||
labelPrice.TabIndex = 21;
|
||||
labelPrice.Text = "Цена";
|
||||
//
|
||||
// textBoxHeading
|
||||
//
|
||||
textBoxHeading.Location = new Point(81, 91);
|
||||
textBoxHeading.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxHeading.Name = "textBoxHeading";
|
||||
textBoxHeading.Size = new Size(239, 23);
|
||||
textBoxHeading.TabIndex = 20;
|
||||
//
|
||||
// labelHeading
|
||||
//
|
||||
labelHeading.AutoSize = true;
|
||||
labelHeading.Location = new Point(81, 74);
|
||||
labelHeading.Name = "labelHeading";
|
||||
labelHeading.Size = new Size(65, 15);
|
||||
labelHeading.TabIndex = 19;
|
||||
labelHeading.Text = "Заголовок";
|
||||
//
|
||||
// buttonUpdateAd
|
||||
//
|
||||
buttonUpdateAd.Location = new Point(81, 425);
|
||||
buttonUpdateAd.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonUpdateAd.Name = "buttonUpdateAd";
|
||||
buttonUpdateAd.Size = new Size(239, 29);
|
||||
buttonUpdateAd.TabIndex = 18;
|
||||
buttonUpdateAd.Text = "Изменить объявление";
|
||||
buttonUpdateAd.UseVisualStyleBackColor = true;
|
||||
buttonUpdateAd.Click += buttonUpdateAd_Click;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(51, 15);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(275, 15);
|
||||
label1.TabIndex = 33;
|
||||
label1.Text = "Выберите объявление, которое хотите обновить";
|
||||
//
|
||||
// comboBoxUpdateAd
|
||||
//
|
||||
comboBoxUpdateAd.FormattingEnabled = true;
|
||||
comboBoxUpdateAd.Location = new Point(10, 39);
|
||||
comboBoxUpdateAd.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxUpdateAd.Name = "comboBoxUpdateAd";
|
||||
comboBoxUpdateAd.Size = new Size(377, 23);
|
||||
comboBoxUpdateAd.TabIndex = 34;
|
||||
comboBoxUpdateAd.SelectedIndexChanged += comboBoxUpdateAd_SelectedIndexChanged;
|
||||
//
|
||||
// UpdateAdsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(397, 473);
|
||||
Controls.Add(comboBoxUpdateAd);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(comboBoxClient);
|
||||
Controls.Add(comboBoxCategory);
|
||||
Controls.Add(comboBoxSubcategory);
|
||||
Controls.Add(labelClient);
|
||||
Controls.Add(labelSubcategory);
|
||||
Controls.Add(labelCategory);
|
||||
Controls.Add(textBoxStatus);
|
||||
Controls.Add(labelStatus);
|
||||
Controls.Add(textBoxDate);
|
||||
Controls.Add(labelDate);
|
||||
Controls.Add(textBoxPrice);
|
||||
Controls.Add(labelPrice);
|
||||
Controls.Add(textBoxHeading);
|
||||
Controls.Add(labelHeading);
|
||||
Controls.Add(buttonUpdateAd);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "UpdateAdsForm";
|
||||
Text = "Обновить объявление";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private ComboBox comboBoxClient;
|
||||
private ComboBox comboBoxCategory;
|
||||
private ComboBox comboBoxSubcategory;
|
||||
private Label labelClient;
|
||||
private Label labelSubcategory;
|
||||
private Label labelCategory;
|
||||
private TextBox textBoxStatus;
|
||||
private Label labelStatus;
|
||||
private TextBox textBoxDate;
|
||||
private Label labelDate;
|
||||
private TextBox textBoxPrice;
|
||||
private Label labelPrice;
|
||||
private TextBox textBoxHeading;
|
||||
private Label labelHeading;
|
||||
private Button buttonUpdateAd;
|
||||
private Label label1;
|
||||
private ComboBox comboBoxUpdateAd;
|
||||
}
|
||||
}
|
154
BulletinBoard/BulletinBoard/AdsForm/UpdateAdsForm.cs
Normal file
154
BulletinBoard/BulletinBoard/AdsForm/UpdateAdsForm.cs
Normal file
@ -0,0 +1,154 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class UpdateAdsForm : Form
|
||||
{
|
||||
//PostgreSqlDatabase psd;
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public UpdateAdsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonUpdateAd_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedAds = comboBoxUpdateAd.SelectedItem.ToString().Split("|");
|
||||
int ads_id = int.Parse(selectedAds[0].Trim());
|
||||
|
||||
string query = $"UPDATE ads SET ";
|
||||
int len = query.Length;
|
||||
|
||||
|
||||
string oldHeading = managmentDatabase.getRowTableById("ads", "heading", ads_id).ToString();
|
||||
string oldPrice = managmentDatabase.getRowTableById("ads", "heading", ads_id).ToString();
|
||||
string oldDate = ((DateTime)managmentDatabase.getRowTableById("ads", "date_of_placement", ads_id)).ToString("dd.MM.yyyy");
|
||||
string oldStatus = managmentDatabase.getRowTableById("ads", "status", ads_id).ToString();
|
||||
string[] oldClient = managmentDatabase.getRowTableById("ads", "client_id", ads_id).ToString().Split(" ");
|
||||
string[] oldCategory = managmentDatabase.getRowTableById("ads", "category_id", ads_id).ToString().Split(" ");
|
||||
string[] oldSubcategory = managmentDatabase.getRowTableById("ads", "subcategory_id", ads_id).ToString().Split(" ");
|
||||
|
||||
|
||||
string newHeading = textBoxHeading.Text;
|
||||
string newPrice = textBoxPrice.Text;
|
||||
string newDate = textBoxDate.Text;
|
||||
string newStatus = textBoxStatus.Text;
|
||||
string[] newClient = comboBoxClient.SelectedItem.ToString().Split(" ");
|
||||
string[] newCategory = comboBoxCategory.SelectedItem.ToString().Split(" ");
|
||||
string[] newSubcategory = comboBoxSubcategory.SelectedItem.ToString().Split(" ");
|
||||
|
||||
|
||||
|
||||
query = oldHeading == newHeading ? query : query + $"heading = '{newHeading}', ";
|
||||
query = oldPrice == newPrice ? query : query + $"price = {newPrice}, ";
|
||||
query = oldDate == newDate ? query : query + $"date_of_placement = '{newDate}', ";
|
||||
query = oldStatus == newStatus ? query : query + $"status = '{newStatus}', ";
|
||||
query = oldClient[0].Trim() == newClient[0].Trim() ? query : query + $"client_id = '{newClient[0].Substring(0, newClient[0].IndexOf("."))}', ";
|
||||
query = oldCategory[0].Trim() == newCategory[0].Trim() ? query : query + $"category_id = '{newCategory[0].Substring(0, newCategory[0].IndexOf("."))}', ";
|
||||
query = oldSubcategory[0].Trim() == newSubcategory[0].Trim() ? query : query + $"subcategory_id = '{newSubcategory[0].Substring(0, newSubcategory[0].IndexOf("."))}', ";
|
||||
|
||||
|
||||
if (len != query.Length)
|
||||
{
|
||||
query = query.TrimEnd(' ');
|
||||
query = query.TrimEnd(',');
|
||||
query += $" WHERE ADS_ID = {ads_id};";
|
||||
}
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.ExecuteNonQuery(query);
|
||||
MessageBox.Show("Данные успешно обновлены!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
MessageBox.Show("Данные не обновились");
|
||||
}
|
||||
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxUpdateAd.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Ads");
|
||||
string Ads = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
Ads = result.Rows[i]["ads_id"].ToString() + " | " +
|
||||
(string)result.Rows[i]["heading"] + " | " +
|
||||
result.Rows[i]["price"].ToString() + " | " +
|
||||
((DateTime)result.Rows[i]["date_of_placement"]).ToString("dd.MM.yyyy") + " | " +
|
||||
(string)result.Rows[i]["status"] + " | " +
|
||||
result.Rows[i]["client_id"].ToString() + " | " +
|
||||
result.Rows[i]["category_id"].ToString() + " | " +
|
||||
result.Rows[i]["subcategory_id"].ToString() + "\n";
|
||||
comboBoxUpdateAd.Items.Add(Ads);
|
||||
}
|
||||
comboBoxCategory.Items.Clear();
|
||||
comboBoxSubcategory.Items.Clear();
|
||||
comboBoxClient.Items.Clear();
|
||||
|
||||
result = managmentDatabase.getAllEntry("Categories");
|
||||
string[] id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = result.Rows[i]["categories_id"].ToString() + ". " + (string)result.Rows[i]["name"];
|
||||
comboBoxCategory.Items.Add(id_names[i]);
|
||||
}
|
||||
result = managmentDatabase.getAllEntry("Subcategories");
|
||||
id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = result.Rows[i]["subcategories_id"].ToString() + ". " + (string)result.Rows[i]["name"];
|
||||
comboBoxSubcategory.Items.Add(id_names[i]);
|
||||
}
|
||||
result = managmentDatabase.getAllEntry("Clients");
|
||||
string[] id_names_surnames = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names_surnames[i] = result.Rows[i]["clients_id"].ToString().Trim() + ". " + ((string)result.Rows[i]["name"]).Trim() + " " + ((string)result.Rows[i]["surname"]).Trim();
|
||||
comboBoxClient.Items.Add(id_names_surnames[i]);
|
||||
}
|
||||
|
||||
}
|
||||
public void LoadDataSelectedItem(int ads_id)
|
||||
{
|
||||
DataTable result = managmentDatabase.getEntryById("ads", ads_id);
|
||||
textBoxHeading.Text = (string)result.Rows[0]["heading"];
|
||||
textBoxPrice.Text = result.Rows[0]["price"].ToString();
|
||||
textBoxDate.Text = ((DateTime)result.Rows[0]["date_of_placement"]).ToString("dd.MM.yyyy");
|
||||
textBoxStatus.Text = (string)result.Rows[0]["status"];
|
||||
|
||||
comboBoxCategory.SelectedItem = result.Rows[0]["category_id"].ToString() + ". " + managmentDatabase.getRowTableById("categories", "name", Convert.ToInt32(result.Rows[0]["id_category"])).ToString();
|
||||
|
||||
comboBoxSubcategory.SelectedItem = result.Rows[0]["subcategory_id"].ToString() + ". " + managmentDatabase.getRowTableById("subcategories", "name", Convert.ToInt32(result.Rows[0]["id_subcategory"])).ToString();
|
||||
|
||||
comboBoxClient.SelectedItem = result.Rows[0]["id_client"].ToString().Trim() + ". " +
|
||||
managmentDatabase.getRowTableById("clients", "name", Convert.ToInt32(result.Rows[0]["client_id"])).ToString().Trim() + " " +
|
||||
managmentDatabase.getRowTableById("clients", "surname", Convert.ToInt32(result.Rows[0]["client_id"])).ToString().Trim();
|
||||
|
||||
}
|
||||
|
||||
private void comboBoxUpdateAd_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedItems = comboBoxUpdateAd.SelectedItem.ToString().Split("|");
|
||||
int ads_id = int.Parse(selectedItems[0].Trim());
|
||||
LoadDataSelectedItem(ads_id);
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/AdsForm/UpdateAdsForm.resx
Normal file
120
BulletinBoard/BulletinBoard/AdsForm/UpdateAdsForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
21
BulletinBoard/BulletinBoard/BulletinBoard.csproj
Normal file
21
BulletinBoard/BulletinBoard/BulletinBoard.csproj
Normal file
@ -0,0 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Npgsql" Version="8.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="RegionsForm\CreateRegionsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
86
BulletinBoard/BulletinBoard/CategoriesForm/CreateCategoriesForm.Designer.cs
generated
Normal file
86
BulletinBoard/BulletinBoard/CategoriesForm/CreateCategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,86 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class CreateCategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.buttonCreateCategory = new System.Windows.Forms.Button();
|
||||
this.labelName = new System.Windows.Forms.Label();
|
||||
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// buttonCreateCategory
|
||||
//
|
||||
this.buttonCreateCategory.Location = new System.Drawing.Point(43, 70);
|
||||
this.buttonCreateCategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonCreateCategory.Name = "buttonCreateCategory";
|
||||
this.buttonCreateCategory.Size = new System.Drawing.Size(239, 29);
|
||||
this.buttonCreateCategory.TabIndex = 0;
|
||||
this.buttonCreateCategory.Text = "Добавить категорию";
|
||||
this.buttonCreateCategory.UseVisualStyleBackColor = true;
|
||||
this.buttonCreateCategory.Click += new System.EventHandler(this.buttonCreateCategory_Click);
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
this.labelName.AutoSize = true;
|
||||
this.labelName.Location = new System.Drawing.Point(43, 8);
|
||||
this.labelName.Name = "labelName";
|
||||
this.labelName.Size = new System.Drawing.Size(59, 15);
|
||||
this.labelName.TabIndex = 1;
|
||||
this.labelName.Text = "Название";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
this.textBoxName.Location = new System.Drawing.Point(43, 26);
|
||||
this.textBoxName.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxName.Name = "textBoxName";
|
||||
this.textBoxName.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxName.TabIndex = 2;
|
||||
//
|
||||
// CreateCategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(324, 127);
|
||||
this.Controls.Add(this.textBoxName);
|
||||
this.Controls.Add(this.labelName);
|
||||
this.Controls.Add(this.buttonCreateCategory);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "CreateCategoriesForm";
|
||||
this.Text = "Категория";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button buttonCreateCategory;
|
||||
private Label labelName;
|
||||
private TextBox textBoxName;
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
using System.Data;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class CreateCategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public CreateCategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
}
|
||||
|
||||
private void buttonCreateCategory_Click(object sender, EventArgs e)
|
||||
{
|
||||
string name = textBoxName.Text;
|
||||
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.insertInto("categories", $"'{name}'");
|
||||
MessageBox.Show("Äîáàâëåíî!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Äîáàâëåíî! Âðåìÿ âûïîëíåíèÿ: {duration.TotalMilliseconds} ìñ");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Íå óäàëîñü äîáàâèòü");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
87
BulletinBoard/BulletinBoard/CategoriesForm/DeleteCategoriesForm.Designer.cs
generated
Normal file
87
BulletinBoard/BulletinBoard/CategoriesForm/DeleteCategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,87 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class DeleteCategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.buttonDeleteCategory = new System.Windows.Forms.Button();
|
||||
this.comboBoxDeleteCategories = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(70, 16);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(262, 15);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Выберите категорию, которую хотите удалить";
|
||||
//
|
||||
// buttonDeleteCategory
|
||||
//
|
||||
this.buttonDeleteCategory.Location = new System.Drawing.Point(132, 85);
|
||||
this.buttonDeleteCategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonDeleteCategory.Name = "buttonDeleteCategory";
|
||||
this.buttonDeleteCategory.Size = new System.Drawing.Size(163, 28);
|
||||
this.buttonDeleteCategory.TabIndex = 1;
|
||||
this.buttonDeleteCategory.Text = "Удалить";
|
||||
this.buttonDeleteCategory.UseVisualStyleBackColor = true;
|
||||
this.buttonDeleteCategory.Click += new System.EventHandler(this.buttonDeleteCategory_Click);
|
||||
//
|
||||
// comboBoxDeleteCategories
|
||||
//
|
||||
this.comboBoxDeleteCategories.FormattingEnabled = true;
|
||||
this.comboBoxDeleteCategories.Location = new System.Drawing.Point(35, 48);
|
||||
this.comboBoxDeleteCategories.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.comboBoxDeleteCategories.Name = "comboBoxDeleteCategories";
|
||||
this.comboBoxDeleteCategories.Size = new System.Drawing.Size(367, 23);
|
||||
this.comboBoxDeleteCategories.TabIndex = 2;
|
||||
//
|
||||
// DeleteCategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(442, 131);
|
||||
this.Controls.Add(this.comboBoxDeleteCategories);
|
||||
this.Controls.Add(this.buttonDeleteCategory);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "DeleteCategoriesForm";
|
||||
this.Text = "Удалить категорию";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Button buttonDeleteCategory;
|
||||
private ComboBox comboBoxDeleteCategories;
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class DeleteCategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
private int setval_seq;
|
||||
public DeleteCategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonDeleteCategory_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] categories = comboBoxDeleteCategories.SelectedItem.ToString().Split("|");
|
||||
string category_id = categories[0].Trim();
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.deleteEntry("categories", int.Parse(category_id));
|
||||
LoadData();
|
||||
if (setval_seq > 0) managmentDatabase.reduceSeq("seq_categories", setval_seq);
|
||||
MessageBox.Show("Удалено!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить");
|
||||
}
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxDeleteCategories.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Categories");
|
||||
setval_seq = result.Rows.Count;
|
||||
string Categories = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
setval_seq = Math.Max(Convert.ToInt32(managmentDatabase.getRowTableById(result, "categories_id", i)), setval_seq);
|
||||
Categories = managmentDatabase.getRowTableById(result, "categories_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
comboBoxDeleteCategories.Items.Add(Categories);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
75
BulletinBoard/BulletinBoard/CategoriesForm/ListCategoriesForm.Designer.cs
generated
Normal file
75
BulletinBoard/BulletinBoard/CategoriesForm/ListCategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,75 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class ListCategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.labelListCategories = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.label1.Location = new System.Drawing.Point(10, 7);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(134, 20);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Список категорий";
|
||||
//
|
||||
// labelListCategories
|
||||
//
|
||||
this.labelListCategories.AutoSize = true;
|
||||
this.labelListCategories.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.labelListCategories.Location = new System.Drawing.Point(10, 35);
|
||||
this.labelListCategories.Name = "labelListCategories";
|
||||
this.labelListCategories.Size = new System.Drawing.Size(0, 19);
|
||||
this.labelListCategories.TabIndex = 1;
|
||||
//
|
||||
// ListCategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(700, 338);
|
||||
this.Controls.Add(this.labelListCategories);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "ListCategoriesForm";
|
||||
this.Text = "Список категорий";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label labelListCategories;
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
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.Windows.Forms.VisualStyles;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class ListCategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public ListCategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
DataTable result = managmentDatabase.getAllEntry("Categories");
|
||||
string listCategories = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
listCategories += managmentDatabase.getRowTableById(result, "categories_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
}
|
||||
labelListCategories.Text = listCategories;
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Список загружен! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
110
BulletinBoard/BulletinBoard/CategoriesForm/UpdateCategoriesForm.Designer.cs
generated
Normal file
110
BulletinBoard/BulletinBoard/CategoriesForm/UpdateCategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,110 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class UpdateCategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.comboBoxUpdateCategory = new System.Windows.Forms.ComboBox();
|
||||
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||
this.labelName = new System.Windows.Forms.Label();
|
||||
this.buttonUpdateCategory = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(51, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(271, 15);
|
||||
this.label1.TabIndex = 33;
|
||||
this.label1.Text = "Выберите категорию, которую хотите обновить";
|
||||
//
|
||||
// comboBoxUpdateCategory
|
||||
//
|
||||
this.comboBoxUpdateCategory.FormattingEnabled = true;
|
||||
this.comboBoxUpdateCategory.Location = new System.Drawing.Point(10, 39);
|
||||
this.comboBoxUpdateCategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.comboBoxUpdateCategory.Name = "comboBoxUpdateCategory";
|
||||
this.comboBoxUpdateCategory.Size = new System.Drawing.Size(377, 23);
|
||||
this.comboBoxUpdateCategory.TabIndex = 34;
|
||||
this.comboBoxUpdateCategory.SelectedIndexChanged += new System.EventHandler(this.comboBoxUpdateCategory_SelectedIndexChanged);
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
this.textBoxName.Location = new System.Drawing.Point(78, 96);
|
||||
this.textBoxName.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxName.Name = "textBoxName";
|
||||
this.textBoxName.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxName.TabIndex = 37;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
this.labelName.AutoSize = true;
|
||||
this.labelName.Location = new System.Drawing.Point(78, 78);
|
||||
this.labelName.Name = "labelName";
|
||||
this.labelName.Size = new System.Drawing.Size(59, 15);
|
||||
this.labelName.TabIndex = 36;
|
||||
this.labelName.Text = "Название";
|
||||
//
|
||||
// buttonUpdateCategory
|
||||
//
|
||||
this.buttonUpdateCategory.Location = new System.Drawing.Point(78, 140);
|
||||
this.buttonUpdateCategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonUpdateCategory.Name = "buttonUpdateCategory";
|
||||
this.buttonUpdateCategory.Size = new System.Drawing.Size(239, 29);
|
||||
this.buttonUpdateCategory.TabIndex = 35;
|
||||
this.buttonUpdateCategory.Text = "Обновить категорию";
|
||||
this.buttonUpdateCategory.UseVisualStyleBackColor = true;
|
||||
this.buttonUpdateCategory.Click += new System.EventHandler(this.buttonUpdateCategory_Click_1);
|
||||
//
|
||||
// UpdateCategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(397, 190);
|
||||
this.Controls.Add(this.textBoxName);
|
||||
this.Controls.Add(this.labelName);
|
||||
this.Controls.Add(this.buttonUpdateCategory);
|
||||
this.Controls.Add(this.comboBoxUpdateCategory);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "UpdateCategoriesForm";
|
||||
this.Text = "Обновить категорию";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private Label label1;
|
||||
private ComboBox comboBoxUpdateCategory;
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
private Button buttonUpdateCategory;
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class UpdateCategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public UpdateCategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxUpdateCategory.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Categories");
|
||||
string Categories = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
Categories = result.Rows[i]["categories_id"].ToString() + " | " +
|
||||
(string)result.Rows[i]["name"] + "\n";
|
||||
comboBoxUpdateCategory.Items.Add(Categories);
|
||||
}
|
||||
}
|
||||
public void LoadDataSelectedItem(int categories_id)
|
||||
{
|
||||
DataTable result = managmentDatabase.getEntryById("categories", categories_id);
|
||||
textBoxName.Text = managmentDatabase.getRowTableById(result, "name", 0).ToString();
|
||||
}
|
||||
|
||||
private void comboBoxUpdateCategory_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedItems = comboBoxUpdateCategory.SelectedItem.ToString().Split("|");
|
||||
int category_id = int.Parse(selectedItems[0].Trim());
|
||||
LoadDataSelectedItem(category_id);
|
||||
}
|
||||
|
||||
private void buttonUpdateCategory_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedCategory = comboBoxUpdateCategory.SelectedItem.ToString().Split("|");
|
||||
int category_id = int.Parse(selectedCategory[0].Trim());
|
||||
|
||||
string query = $"UPDATE Categories SET ";
|
||||
int len = query.Length;
|
||||
|
||||
|
||||
string oldName = managmentDatabase.getRowTableById("categories", "name", category_id).ToString();
|
||||
|
||||
string newName = textBoxName.Text;
|
||||
|
||||
|
||||
query = oldName == newName ? query : query + $"name = '{newName}', ";
|
||||
if (len != query.Length)
|
||||
{
|
||||
query = query.TrimEnd(' ');
|
||||
query = query.TrimEnd(',');
|
||||
query += $" WHERE Categories_ID = {category_id};";
|
||||
}
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.ExecuteNonQuery(query);
|
||||
MessageBox.Show("Данные успешно обновлены!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
MessageBox.Show("Данные не обновились");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
109
BulletinBoard/BulletinBoard/CitiesForm/CreateCitiesForm.Designer.cs
generated
Normal file
109
BulletinBoard/BulletinBoard/CitiesForm/CreateCitiesForm.Designer.cs
generated
Normal file
@ -0,0 +1,109 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class CreateCitiesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
buttonCreateCity = new Button();
|
||||
labelName = new Label();
|
||||
textBoxName = new TextBox();
|
||||
labelCategory = new Label();
|
||||
comboBoxRegion = new ComboBox();
|
||||
SuspendLayout();
|
||||
//
|
||||
// buttonCreateCity
|
||||
//
|
||||
buttonCreateCity.Location = new Point(43, 111);
|
||||
buttonCreateCity.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonCreateCity.Name = "buttonCreateCity";
|
||||
buttonCreateCity.Size = new Size(239, 29);
|
||||
buttonCreateCity.TabIndex = 0;
|
||||
buttonCreateCity.Text = "Добавить город";
|
||||
buttonCreateCity.UseVisualStyleBackColor = true;
|
||||
buttonCreateCity.Click += buttonCreateCity_Click;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(43, 8);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(59, 15);
|
||||
labelName.TabIndex = 1;
|
||||
labelName.Text = "Название";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(43, 26);
|
||||
textBoxName.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(239, 23);
|
||||
textBoxName.TabIndex = 2;
|
||||
//
|
||||
// labelCategory
|
||||
//
|
||||
labelCategory.AutoSize = true;
|
||||
labelCategory.Location = new Point(43, 62);
|
||||
labelCategory.Name = "labelCategory";
|
||||
labelCategory.Size = new Size(46, 15);
|
||||
labelCategory.TabIndex = 20;
|
||||
labelCategory.Text = "Регион";
|
||||
//
|
||||
// comboBoxRegion
|
||||
//
|
||||
comboBoxRegion.FormattingEnabled = true;
|
||||
comboBoxRegion.Location = new Point(43, 78);
|
||||
comboBoxRegion.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxRegion.Name = "comboBoxRegion";
|
||||
comboBoxRegion.Size = new Size(239, 23);
|
||||
comboBoxRegion.TabIndex = 19;
|
||||
//
|
||||
// CreateCitiesForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(324, 163);
|
||||
Controls.Add(labelCategory);
|
||||
Controls.Add(comboBoxRegion);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelName);
|
||||
Controls.Add(buttonCreateCity);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "CreateCitiesForm";
|
||||
Text = "Добавить Город";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button buttonCreateCity;
|
||||
private Label labelName;
|
||||
private TextBox textBoxName;
|
||||
private Label labelCategory;
|
||||
private ComboBox comboBoxRegion;
|
||||
}
|
||||
}
|
56
BulletinBoard/BulletinBoard/CitiesForm/CreateCitiesForm.cs
Normal file
56
BulletinBoard/BulletinBoard/CitiesForm/CreateCitiesForm.cs
Normal file
@ -0,0 +1,56 @@
|
||||
using System.Data;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class CreateCitiesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public CreateCitiesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonCreateCity_Click(object sender, EventArgs e)
|
||||
{
|
||||
string name = textBoxName.Text;
|
||||
|
||||
string[] region = comboBoxRegion.SelectedItem.ToString().Split(" ");
|
||||
|
||||
string regions_id = region[0];
|
||||
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.insertInto("cities", $"'{name}'", regions_id);
|
||||
MessageBox.Show("Äîáàâëåíî!");
|
||||
LoadData();
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Äîáàâëåíî! Âðåìÿ âûïîëíåíèÿ: {duration.TotalMilliseconds} ìñ");
|
||||
|
||||
// Çàêðûòü òåêóùóþ ôîðìó ïîñëå âûïîëíåíèÿ äåéñòâèé
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Íå óäàëîñü äîáàâèòü");
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
comboBoxRegion.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("REGIONS");
|
||||
string[] id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = managmentDatabase.getRowTableById(result, "regions_id", i).ToString() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString();
|
||||
comboBoxRegion.Items.Add(id_names[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/CitiesForm/CreateCitiesForm.resx
Normal file
120
BulletinBoard/BulletinBoard/CitiesForm/CreateCitiesForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
86
BulletinBoard/BulletinBoard/CitiesForm/DeleteCitiesForm.Designer.cs
generated
Normal file
86
BulletinBoard/BulletinBoard/CitiesForm/DeleteCitiesForm.Designer.cs
generated
Normal file
@ -0,0 +1,86 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class DeleteCitiesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
buttonDeleteCity = new Button();
|
||||
comboBoxDeleteCities = new ComboBox();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(70, 16);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(235, 15);
|
||||
label1.TabIndex = 0;
|
||||
label1.Text = "Выберите город, которую хотите удалить";
|
||||
//
|
||||
// buttonDeleteCity
|
||||
//
|
||||
buttonDeleteCity.Location = new Point(132, 85);
|
||||
buttonDeleteCity.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonDeleteCity.Name = "buttonDeleteCity";
|
||||
buttonDeleteCity.Size = new Size(163, 28);
|
||||
buttonDeleteCity.TabIndex = 1;
|
||||
buttonDeleteCity.Text = "Удалить";
|
||||
buttonDeleteCity.UseVisualStyleBackColor = true;
|
||||
buttonDeleteCity.Click += buttonDeleteCity_Click;
|
||||
//
|
||||
// comboBoxDeleteCities
|
||||
//
|
||||
comboBoxDeleteCities.FormattingEnabled = true;
|
||||
comboBoxDeleteCities.Location = new Point(35, 48);
|
||||
comboBoxDeleteCities.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxDeleteCities.Name = "comboBoxDeleteCities";
|
||||
comboBoxDeleteCities.Size = new Size(367, 23);
|
||||
comboBoxDeleteCities.TabIndex = 2;
|
||||
//
|
||||
// DeleteCitiesForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(442, 131);
|
||||
Controls.Add(comboBoxDeleteCities);
|
||||
Controls.Add(buttonDeleteCity);
|
||||
Controls.Add(label1);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "DeleteCitiesForm";
|
||||
Text = "Удалить город";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Button buttonDeleteCity;
|
||||
private ComboBox comboBoxDeleteCities;
|
||||
}
|
||||
}
|
61
BulletinBoard/BulletinBoard/CitiesForm/DeleteCitiesForm.cs
Normal file
61
BulletinBoard/BulletinBoard/CitiesForm/DeleteCitiesForm.cs
Normal file
@ -0,0 +1,61 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class DeleteCitiesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
private int setval_seq;
|
||||
public DeleteCitiesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonDeleteCity_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] categories = comboBoxDeleteCities.SelectedItem.ToString().Split("|");
|
||||
string category_id = categories[0].Trim();
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.deleteEntry("cities", int.Parse(category_id));
|
||||
LoadData();
|
||||
if (setval_seq > 0) managmentDatabase.reduceSeq("seq_cities", setval_seq);
|
||||
MessageBox.Show("Удалено!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить");
|
||||
}
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxDeleteCities.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Cities");
|
||||
setval_seq = result.Rows.Count;
|
||||
string Regions = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
setval_seq = Math.Max(Convert.ToInt32(managmentDatabase.getRowTableById(result, "cities_id", i)), setval_seq);
|
||||
Regions = managmentDatabase.getRowTableById(result, "cities_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
comboBoxDeleteCities.Items.Add(Regions);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/CitiesForm/DeleteCitiesForm.resx
Normal file
120
BulletinBoard/BulletinBoard/CitiesForm/DeleteCitiesForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
74
BulletinBoard/BulletinBoard/CitiesForm/ListCitiesForm.Designer.cs
generated
Normal file
74
BulletinBoard/BulletinBoard/CitiesForm/ListCitiesForm.Designer.cs
generated
Normal file
@ -0,0 +1,74 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class ListCitiesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
labelListCities = new Label();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = SystemColors.Control;
|
||||
label1.Font = new Font("Segoe UI", 11F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
label1.Location = new Point(10, 7);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(121, 20);
|
||||
label1.TabIndex = 0;
|
||||
label1.Text = "Список городов";
|
||||
//
|
||||
// labelListCities
|
||||
//
|
||||
labelListCities.AutoSize = true;
|
||||
labelListCities.Font = new Font("Segoe UI", 10F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
labelListCities.Location = new Point(10, 35);
|
||||
labelListCities.Name = "labelListCities";
|
||||
labelListCities.Size = new Size(0, 19);
|
||||
labelListCities.TabIndex = 1;
|
||||
//
|
||||
// ListCitiesForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(700, 338);
|
||||
Controls.Add(labelListCities);
|
||||
Controls.Add(label1);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "ListCitiesForm";
|
||||
Text = "Список городов";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label labelListCities;
|
||||
}
|
||||
}
|
42
BulletinBoard/BulletinBoard/CitiesForm/ListCitiesForm.cs
Normal file
42
BulletinBoard/BulletinBoard/CitiesForm/ListCitiesForm.cs
Normal file
@ -0,0 +1,42 @@
|
||||
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.Windows.Forms.VisualStyles;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class ListCitiesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public ListCitiesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
DataTable result = managmentDatabase.getAllEntry("Cities");
|
||||
string listCities = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
listCities += managmentDatabase.getRowTableById(result, "cities_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
}
|
||||
labelListCities.Text = listCities;
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/CitiesForm/ListCitiesForm.resx
Normal file
120
BulletinBoard/BulletinBoard/CitiesForm/ListCitiesForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
111
BulletinBoard/BulletinBoard/CitiesForm/UpdateCitiesForm.Designer.cs
generated
Normal file
111
BulletinBoard/BulletinBoard/CitiesForm/UpdateCitiesForm.Designer.cs
generated
Normal file
@ -0,0 +1,111 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class UpdateCitiesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
comboBoxUpdateCity = new ComboBox();
|
||||
textBoxName = new TextBox();
|
||||
labelName = new Label();
|
||||
buttonUpdateCity = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(51, 15);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(244, 15);
|
||||
label1.TabIndex = 33;
|
||||
label1.Text = "Выберите город, который хотите обновить";
|
||||
//
|
||||
// comboBoxUpdateCity
|
||||
//
|
||||
comboBoxUpdateCity.FormattingEnabled = true;
|
||||
comboBoxUpdateCity.Location = new Point(10, 39);
|
||||
comboBoxUpdateCity.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxUpdateCity.Name = "comboBoxUpdateCity";
|
||||
comboBoxUpdateCity.Size = new Size(377, 23);
|
||||
comboBoxUpdateCity.TabIndex = 34;
|
||||
comboBoxUpdateCity.SelectedIndexChanged += comboBoxUpdateCity_SelectedIndexChanged;
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(78, 96);
|
||||
textBoxName.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(239, 23);
|
||||
textBoxName.TabIndex = 37;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(78, 78);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(59, 15);
|
||||
labelName.TabIndex = 36;
|
||||
labelName.Text = "Название";
|
||||
//
|
||||
// buttonUpdateCity
|
||||
//
|
||||
buttonUpdateCity.Location = new Point(78, 140);
|
||||
buttonUpdateCity.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonUpdateCity.Name = "buttonUpdateCity";
|
||||
buttonUpdateCity.Size = new Size(239, 29);
|
||||
buttonUpdateCity.TabIndex = 35;
|
||||
buttonUpdateCity.Text = "Обновить город";
|
||||
buttonUpdateCity.UseVisualStyleBackColor = true;
|
||||
buttonUpdateCity.Click += buttonUpdateCity_Click_1;
|
||||
//
|
||||
// UpdateCitiesForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(397, 190);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelName);
|
||||
Controls.Add(buttonUpdateCity);
|
||||
Controls.Add(comboBoxUpdateCity);
|
||||
Controls.Add(label1);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "UpdateCitiesForm";
|
||||
Text = "Обновить город";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private Label label1;
|
||||
private ComboBox comboBoxUpdateCity;
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
private Button buttonUpdateCity;
|
||||
}
|
||||
}
|
86
BulletinBoard/BulletinBoard/CitiesForm/UpdateCitiesForm.cs
Normal file
86
BulletinBoard/BulletinBoard/CitiesForm/UpdateCitiesForm.cs
Normal file
@ -0,0 +1,86 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class UpdateCitiesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public UpdateCitiesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
comboBoxUpdateCity.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Cities");
|
||||
string Cities = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
Cities = result.Rows[i]["cities_id"].ToString() + " | " +
|
||||
(string)result.Rows[i]["name"] + "\n";
|
||||
comboBoxUpdateCity.Items.Add(Cities);
|
||||
}
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
public void LoadDataSelectedItem(int cities_id)
|
||||
{
|
||||
DataTable result = managmentDatabase.getEntryById("regions", cities_id);
|
||||
textBoxName.Text = managmentDatabase.getRowTableById(result, "name", 0).ToString();
|
||||
}
|
||||
|
||||
private void comboBoxUpdateCity_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedItems = comboBoxUpdateCity.SelectedItem.ToString().Split("|");
|
||||
int city_id = int.Parse(selectedItems[0].Trim());
|
||||
LoadDataSelectedItem(city_id);
|
||||
}
|
||||
|
||||
private void buttonUpdateCity_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedCategory = comboBoxUpdateCity.SelectedItem.ToString().Split("|");
|
||||
int city_id = int.Parse(selectedCategory[0].Trim());
|
||||
|
||||
string query = $"UPDATE Cities SET ";
|
||||
int len = query.Length;
|
||||
|
||||
|
||||
string oldName = managmentDatabase.getRowTableById("cities", "name", city_id).ToString();
|
||||
|
||||
string newName = textBoxName.Text;
|
||||
|
||||
|
||||
query = oldName == newName ? query : query + $"name = '{newName}', ";
|
||||
if (len != query.Length)
|
||||
{
|
||||
query = query.TrimEnd(' ');
|
||||
query = query.TrimEnd(',');
|
||||
query += $" WHERE Cities_ID = {city_id};";
|
||||
}
|
||||
try
|
||||
{
|
||||
managmentDatabase.ExecuteNonQuery(query);
|
||||
MessageBox.Show("Данные успешно обновлены!");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
MessageBox.Show("Данные не обновились");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/CitiesForm/UpdateCitiesForm.resx
Normal file
120
BulletinBoard/BulletinBoard/CitiesForm/UpdateCitiesForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
201
BulletinBoard/BulletinBoard/ClientsForm/CreateClientsForm.Designer.cs
generated
Normal file
201
BulletinBoard/BulletinBoard/ClientsForm/CreateClientsForm.Designer.cs
generated
Normal file
@ -0,0 +1,201 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class CreateClientsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.buttonCreateClient = new System.Windows.Forms.Button();
|
||||
this.labelName = new System.Windows.Forms.Label();
|
||||
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||
this.textBoxSurname = new System.Windows.Forms.TextBox();
|
||||
this.labelSurname = new System.Windows.Forms.Label();
|
||||
this.textBoxPatronymic = new System.Windows.Forms.TextBox();
|
||||
this.labelPatronymic = new System.Windows.Forms.Label();
|
||||
this.labelDate = new System.Windows.Forms.Label();
|
||||
this.textBoxEmail = new System.Windows.Forms.TextBox();
|
||||
this.labelEmail = new System.Windows.Forms.Label();
|
||||
this.labelPhoneNumber = new System.Windows.Forms.Label();
|
||||
this.textBoxPhoneNumber = new System.Windows.Forms.TextBox();
|
||||
this.textBoxDate = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// buttonCreateClient
|
||||
//
|
||||
this.buttonCreateClient.Location = new System.Drawing.Point(43, 346);
|
||||
this.buttonCreateClient.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonCreateClient.Name = "buttonCreateClient";
|
||||
this.buttonCreateClient.Size = new System.Drawing.Size(239, 29);
|
||||
this.buttonCreateClient.TabIndex = 0;
|
||||
this.buttonCreateClient.Text = "Создать клиента";
|
||||
this.buttonCreateClient.UseVisualStyleBackColor = true;
|
||||
this.buttonCreateClient.Click += new System.EventHandler(this.buttonCreateClient_Click);
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
this.labelName.AutoSize = true;
|
||||
this.labelName.Location = new System.Drawing.Point(43, 8);
|
||||
this.labelName.Name = "labelName";
|
||||
this.labelName.Size = new System.Drawing.Size(31, 15);
|
||||
this.labelName.TabIndex = 1;
|
||||
this.labelName.Text = "Имя";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
this.textBoxName.Location = new System.Drawing.Point(43, 26);
|
||||
this.textBoxName.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxName.Name = "textBoxName";
|
||||
this.textBoxName.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxName.TabIndex = 2;
|
||||
//
|
||||
// textBoxSurname
|
||||
//
|
||||
this.textBoxSurname.Location = new System.Drawing.Point(43, 72);
|
||||
this.textBoxSurname.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxSurname.Name = "textBoxSurname";
|
||||
this.textBoxSurname.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxSurname.TabIndex = 4;
|
||||
//
|
||||
// labelSurname
|
||||
//
|
||||
this.labelSurname.AutoSize = true;
|
||||
this.labelSurname.Location = new System.Drawing.Point(43, 55);
|
||||
this.labelSurname.Name = "labelSurname";
|
||||
this.labelSurname.Size = new System.Drawing.Size(58, 15);
|
||||
this.labelSurname.TabIndex = 3;
|
||||
this.labelSurname.Text = "Фамилия";
|
||||
//
|
||||
// textBoxPatronymic
|
||||
//
|
||||
this.textBoxPatronymic.Location = new System.Drawing.Point(43, 118);
|
||||
this.textBoxPatronymic.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxPatronymic.Name = "textBoxPatronymic";
|
||||
this.textBoxPatronymic.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxPatronymic.TabIndex = 6;
|
||||
//
|
||||
// labelPatronymic
|
||||
//
|
||||
this.labelPatronymic.AutoSize = true;
|
||||
this.labelPatronymic.Location = new System.Drawing.Point(43, 101);
|
||||
this.labelPatronymic.Name = "labelPatronymic";
|
||||
this.labelPatronymic.Size = new System.Drawing.Size(58, 15);
|
||||
this.labelPatronymic.TabIndex = 5;
|
||||
this.labelPatronymic.Text = "Отчество";
|
||||
//
|
||||
// labelDate
|
||||
//
|
||||
this.labelDate.AutoSize = true;
|
||||
this.labelDate.Location = new System.Drawing.Point(43, 246);
|
||||
this.labelDate.Name = "labelDate";
|
||||
this.labelDate.Size = new System.Drawing.Size(105, 15);
|
||||
this.labelDate.TabIndex = 9;
|
||||
this.labelDate.Text = "Дата регистрации";
|
||||
//
|
||||
// textBoxEmail
|
||||
//
|
||||
this.textBoxEmail.Location = new System.Drawing.Point(43, 166);
|
||||
this.textBoxEmail.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxEmail.Name = "textBoxEmail";
|
||||
this.textBoxEmail.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxEmail.TabIndex = 8;
|
||||
//
|
||||
// labelEmail
|
||||
//
|
||||
this.labelEmail.AutoSize = true;
|
||||
this.labelEmail.Location = new System.Drawing.Point(43, 148);
|
||||
this.labelEmail.Name = "labelEmail";
|
||||
this.labelEmail.Size = new System.Drawing.Size(41, 15);
|
||||
this.labelEmail.TabIndex = 7;
|
||||
this.labelEmail.Text = "Почта";
|
||||
//
|
||||
// labelPhoneNumber
|
||||
//
|
||||
this.labelPhoneNumber.AutoSize = true;
|
||||
this.labelPhoneNumber.Location = new System.Drawing.Point(43, 196);
|
||||
this.labelPhoneNumber.Name = "labelPhoneNumber";
|
||||
this.labelPhoneNumber.Size = new System.Drawing.Size(101, 15);
|
||||
this.labelPhoneNumber.TabIndex = 13;
|
||||
this.labelPhoneNumber.Text = "Номер телефона";
|
||||
//
|
||||
// textBoxPhoneNumber
|
||||
//
|
||||
this.textBoxPhoneNumber.Location = new System.Drawing.Point(43, 213);
|
||||
this.textBoxPhoneNumber.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxPhoneNumber.Name = "textBoxPhoneNumber";
|
||||
this.textBoxPhoneNumber.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxPhoneNumber.TabIndex = 14;
|
||||
//
|
||||
// textBoxDate
|
||||
//
|
||||
this.textBoxDate.Location = new System.Drawing.Point(43, 263);
|
||||
this.textBoxDate.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxDate.Name = "textBoxDate";
|
||||
this.textBoxDate.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxDate.TabIndex = 15;
|
||||
//
|
||||
// CreateClientsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(324, 398);
|
||||
this.Controls.Add(this.textBoxDate);
|
||||
this.Controls.Add(this.textBoxPhoneNumber);
|
||||
this.Controls.Add(this.labelPhoneNumber);
|
||||
this.Controls.Add(this.labelDate);
|
||||
this.Controls.Add(this.textBoxEmail);
|
||||
this.Controls.Add(this.labelEmail);
|
||||
this.Controls.Add(this.textBoxPatronymic);
|
||||
this.Controls.Add(this.labelPatronymic);
|
||||
this.Controls.Add(this.textBoxSurname);
|
||||
this.Controls.Add(this.labelSurname);
|
||||
this.Controls.Add(this.textBoxName);
|
||||
this.Controls.Add(this.labelName);
|
||||
this.Controls.Add(this.buttonCreateClient);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "CreateClientsForm";
|
||||
this.Text = "Клиенты";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button buttonCreateClient;
|
||||
private Label labelName;
|
||||
private TextBox textBoxName;
|
||||
private TextBox textBoxSurname;
|
||||
private Label labelSurname;
|
||||
private TextBox textBoxPatronymic;
|
||||
private Label labelPatronymic;
|
||||
private Label labelDate;
|
||||
private TextBox textBoxEmail;
|
||||
private Label labelEmail;
|
||||
private Label labelPhoneNumber;
|
||||
private TextBox textBoxPhoneNumber;
|
||||
private TextBox textBoxDate;
|
||||
}
|
||||
}
|
45
BulletinBoard/BulletinBoard/ClientsForm/CreateClientsForm.cs
Normal file
45
BulletinBoard/BulletinBoard/ClientsForm/CreateClientsForm.cs
Normal file
@ -0,0 +1,45 @@
|
||||
using System.Data;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class CreateClientsForm : Form
|
||||
{
|
||||
//PostgreSqlDatabase psd;
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public CreateClientsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
}
|
||||
|
||||
private void buttonCreateClient_Click(object sender, EventArgs e)
|
||||
{
|
||||
string name = textBoxName.Text;
|
||||
string surname = textBoxSurname.Text;
|
||||
string patronymic = textBoxPatronymic.Text;
|
||||
string email = textBoxEmail.Text;
|
||||
string phoneNumber = textBoxPhoneNumber.Text;
|
||||
string date = textBoxDate.Text;
|
||||
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
if (patronymic != null)
|
||||
managmentDatabase.insertInto("clients", $"'{name}'", $"'{surname}'", $"'{patronymic}'", $"'{email}'", $"{phoneNumber}", $"'{date}'");
|
||||
else managmentDatabase.insertInto("clients", $"'{name}'", $"'{surname}'", $"{patronymic}", $"'{email}'", $"{phoneNumber}", $"'{date}'");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Äîáàâëåíî! Âðåìÿ âûïîëíåíèÿ: {duration.TotalMilliseconds} ìñ");
|
||||
|
||||
// Çàêðûòü òåêóùóþ ôîðìó ïîñëå âûïîëíåíèÿ äåéñòâèé
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Íå óäàëîñü äîáàâèòü");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
87
BulletinBoard/BulletinBoard/ClientsForm/DeleteClientsForm.Designer.cs
generated
Normal file
87
BulletinBoard/BulletinBoard/ClientsForm/DeleteClientsForm.Designer.cs
generated
Normal file
@ -0,0 +1,87 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class DeleteClientsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.buttonDeleteClient = new System.Windows.Forms.Button();
|
||||
this.comboBoxDeleteClients = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(70, 16);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(266, 15);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Выберите объявление, которое хотите удалить";
|
||||
//
|
||||
// buttonDeleteClient
|
||||
//
|
||||
this.buttonDeleteClient.Location = new System.Drawing.Point(132, 85);
|
||||
this.buttonDeleteClient.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonDeleteClient.Name = "buttonDeleteClient";
|
||||
this.buttonDeleteClient.Size = new System.Drawing.Size(163, 28);
|
||||
this.buttonDeleteClient.TabIndex = 1;
|
||||
this.buttonDeleteClient.Text = "Удалить";
|
||||
this.buttonDeleteClient.UseVisualStyleBackColor = true;
|
||||
this.buttonDeleteClient.Click += new System.EventHandler(this.buttonDeleteAd_Click);
|
||||
//
|
||||
// comboBoxDeleteClients
|
||||
//
|
||||
this.comboBoxDeleteClients.FormattingEnabled = true;
|
||||
this.comboBoxDeleteClients.Location = new System.Drawing.Point(35, 48);
|
||||
this.comboBoxDeleteClients.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.comboBoxDeleteClients.Name = "comboBoxDeleteClients";
|
||||
this.comboBoxDeleteClients.Size = new System.Drawing.Size(367, 23);
|
||||
this.comboBoxDeleteClients.TabIndex = 2;
|
||||
//
|
||||
// DeleteClientsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(442, 131);
|
||||
this.Controls.Add(this.comboBoxDeleteClients);
|
||||
this.Controls.Add(this.buttonDeleteClient);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "DeleteClientsForm";
|
||||
this.Text = "Удалить объявление";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Button buttonDeleteClient;
|
||||
private ComboBox comboBoxDeleteClients;
|
||||
}
|
||||
}
|
68
BulletinBoard/BulletinBoard/ClientsForm/DeleteClientsForm.cs
Normal file
68
BulletinBoard/BulletinBoard/ClientsForm/DeleteClientsForm.cs
Normal file
@ -0,0 +1,68 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class DeleteClientsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
private int setval_seq;
|
||||
public DeleteClientsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonDeleteAd_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] clients = comboBoxDeleteClients.SelectedItem.ToString().Split("|");
|
||||
string client_id = clients[0].Trim();
|
||||
//string query = $"DELETE FROM ADS WHERE ads_id = {ad_id}";
|
||||
//string query_seq_reduction = $"SELECT setval('seq_ads', {setval_seq - 1});";
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.deleteEntry("clients", int.Parse(client_id));
|
||||
LoadData();
|
||||
if (setval_seq > 0) managmentDatabase.reduceSeq("seq_clients", setval_seq);
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
|
||||
MessageBox.Show($"Удалено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить");
|
||||
}
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxDeleteClients.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Clients");
|
||||
setval_seq = result.Rows.Count;
|
||||
string Clients = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
setval_seq = Math.Max(Convert.ToInt32(managmentDatabase.getRowTableById(result, "clients_id", i)), setval_seq);
|
||||
Clients = managmentDatabase.getRowTableById(result, "clients_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "surname", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "patronymic", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "email", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "phone_number", i).ToString() + " | " +
|
||||
((DateTime)managmentDatabase.getRowTableById(result, "registration_date", i)).ToString("dd.MM.yyy") + "\n";
|
||||
comboBoxDeleteClients.Items.Add(Clients);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
75
BulletinBoard/BulletinBoard/ClientsForm/ListClientsForm.Designer.cs
generated
Normal file
75
BulletinBoard/BulletinBoard/ClientsForm/ListClientsForm.Designer.cs
generated
Normal file
@ -0,0 +1,75 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class ListClientsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.labelListClients = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.label1.Location = new System.Drawing.Point(10, 7);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(127, 20);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Список клиентов";
|
||||
//
|
||||
// labelListClients
|
||||
//
|
||||
this.labelListClients.AutoSize = true;
|
||||
this.labelListClients.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.labelListClients.Location = new System.Drawing.Point(10, 35);
|
||||
this.labelListClients.Name = "labelListClients";
|
||||
this.labelListClients.Size = new System.Drawing.Size(0, 19);
|
||||
this.labelListClients.TabIndex = 1;
|
||||
//
|
||||
// ListClientsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(700, 338);
|
||||
this.Controls.Add(this.labelListClients);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "ListClientsForm";
|
||||
this.Text = "Список клиентов";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label labelListClients;
|
||||
}
|
||||
}
|
48
BulletinBoard/BulletinBoard/ClientsForm/ListClientsForm.cs
Normal file
48
BulletinBoard/BulletinBoard/ClientsForm/ListClientsForm.cs
Normal file
@ -0,0 +1,48 @@
|
||||
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.Windows.Forms.VisualStyles;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class ListClientsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public ListClientsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
DataTable result = managmentDatabase.getAllEntry("clients");
|
||||
string listClients = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
listClients += managmentDatabase.getRowTableById(result, "clients_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "surname", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "patronymic", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "email", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "phone_number", i).ToString() + " | " +
|
||||
((DateTime)managmentDatabase.getRowTableById(result, "registration_date", i)).ToString("dd.MM.yyy") + "\n";
|
||||
}
|
||||
labelListClients.Text = listClients;
|
||||
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Список загружен! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
60
BulletinBoard/BulletinBoard/ClientsForm/ListClientsForm.resx
Normal file
60
BulletinBoard/BulletinBoard/ClientsForm/ListClientsForm.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
225
BulletinBoard/BulletinBoard/ClientsForm/UpdateClientsForm.Designer.cs
generated
Normal file
225
BulletinBoard/BulletinBoard/ClientsForm/UpdateClientsForm.Designer.cs
generated
Normal file
@ -0,0 +1,225 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class UpdateClientsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.buttonUpdateClient = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.comboBoxUpdateClient = new System.Windows.Forms.ComboBox();
|
||||
this.textBoxDate = new System.Windows.Forms.TextBox();
|
||||
this.textBoxPhoneNumber = new System.Windows.Forms.TextBox();
|
||||
this.labelPhoneNumber = new System.Windows.Forms.Label();
|
||||
this.labelDate = new System.Windows.Forms.Label();
|
||||
this.textBoxEmail = new System.Windows.Forms.TextBox();
|
||||
this.labelEmail = new System.Windows.Forms.Label();
|
||||
this.textBoxPatronymic = new System.Windows.Forms.TextBox();
|
||||
this.labelPatronymic = new System.Windows.Forms.Label();
|
||||
this.textBoxSurname = new System.Windows.Forms.TextBox();
|
||||
this.labelSurname = new System.Windows.Forms.Label();
|
||||
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||
this.labelName = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// buttonUpdateClient
|
||||
//
|
||||
this.buttonUpdateClient.Location = new System.Drawing.Point(81, 407);
|
||||
this.buttonUpdateClient.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonUpdateClient.Name = "buttonUpdateClient";
|
||||
this.buttonUpdateClient.Size = new System.Drawing.Size(239, 29);
|
||||
this.buttonUpdateClient.TabIndex = 18;
|
||||
this.buttonUpdateClient.Text = "Обновить клиента";
|
||||
this.buttonUpdateClient.UseVisualStyleBackColor = true;
|
||||
this.buttonUpdateClient.Click += new System.EventHandler(this.buttonUpdateClient_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(51, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(259, 15);
|
||||
this.label1.TabIndex = 33;
|
||||
this.label1.Text = "Выберите клиента, которого хотите обновить";
|
||||
//
|
||||
// comboBoxUpdateClient
|
||||
//
|
||||
this.comboBoxUpdateClient.FormattingEnabled = true;
|
||||
this.comboBoxUpdateClient.Location = new System.Drawing.Point(10, 39);
|
||||
this.comboBoxUpdateClient.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.comboBoxUpdateClient.Name = "comboBoxUpdateClient";
|
||||
this.comboBoxUpdateClient.Size = new System.Drawing.Size(377, 23);
|
||||
this.comboBoxUpdateClient.TabIndex = 34;
|
||||
this.comboBoxUpdateClient.SelectedIndexChanged += new System.EventHandler(this.comboBoxUpdateClient_SelectedIndexChanged);
|
||||
//
|
||||
// textBoxDate
|
||||
//
|
||||
this.textBoxDate.Location = new System.Drawing.Point(79, 326);
|
||||
this.textBoxDate.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxDate.Name = "textBoxDate";
|
||||
this.textBoxDate.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxDate.TabIndex = 47;
|
||||
//
|
||||
// textBoxPhoneNumber
|
||||
//
|
||||
this.textBoxPhoneNumber.Location = new System.Drawing.Point(79, 276);
|
||||
this.textBoxPhoneNumber.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxPhoneNumber.Name = "textBoxPhoneNumber";
|
||||
this.textBoxPhoneNumber.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxPhoneNumber.TabIndex = 46;
|
||||
//
|
||||
// labelPhoneNumber
|
||||
//
|
||||
this.labelPhoneNumber.AutoSize = true;
|
||||
this.labelPhoneNumber.Location = new System.Drawing.Point(79, 259);
|
||||
this.labelPhoneNumber.Name = "labelPhoneNumber";
|
||||
this.labelPhoneNumber.Size = new System.Drawing.Size(101, 15);
|
||||
this.labelPhoneNumber.TabIndex = 45;
|
||||
this.labelPhoneNumber.Text = "Номер телефона";
|
||||
//
|
||||
// labelDate
|
||||
//
|
||||
this.labelDate.AutoSize = true;
|
||||
this.labelDate.Location = new System.Drawing.Point(79, 309);
|
||||
this.labelDate.Name = "labelDate";
|
||||
this.labelDate.Size = new System.Drawing.Size(105, 15);
|
||||
this.labelDate.TabIndex = 43;
|
||||
this.labelDate.Text = "Дата регистрации";
|
||||
//
|
||||
// textBoxEmail
|
||||
//
|
||||
this.textBoxEmail.Location = new System.Drawing.Point(79, 229);
|
||||
this.textBoxEmail.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxEmail.Name = "textBoxEmail";
|
||||
this.textBoxEmail.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxEmail.TabIndex = 42;
|
||||
//
|
||||
// labelEmail
|
||||
//
|
||||
this.labelEmail.AutoSize = true;
|
||||
this.labelEmail.Location = new System.Drawing.Point(79, 211);
|
||||
this.labelEmail.Name = "labelEmail";
|
||||
this.labelEmail.Size = new System.Drawing.Size(41, 15);
|
||||
this.labelEmail.TabIndex = 41;
|
||||
this.labelEmail.Text = "Почта";
|
||||
//
|
||||
// textBoxPatronymic
|
||||
//
|
||||
this.textBoxPatronymic.Location = new System.Drawing.Point(79, 181);
|
||||
this.textBoxPatronymic.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxPatronymic.Name = "textBoxPatronymic";
|
||||
this.textBoxPatronymic.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxPatronymic.TabIndex = 40;
|
||||
//
|
||||
// labelPatronymic
|
||||
//
|
||||
this.labelPatronymic.AutoSize = true;
|
||||
this.labelPatronymic.Location = new System.Drawing.Point(79, 164);
|
||||
this.labelPatronymic.Name = "labelPatronymic";
|
||||
this.labelPatronymic.Size = new System.Drawing.Size(58, 15);
|
||||
this.labelPatronymic.TabIndex = 39;
|
||||
this.labelPatronymic.Text = "Отчество";
|
||||
//
|
||||
// textBoxSurname
|
||||
//
|
||||
this.textBoxSurname.Location = new System.Drawing.Point(79, 135);
|
||||
this.textBoxSurname.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxSurname.Name = "textBoxSurname";
|
||||
this.textBoxSurname.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxSurname.TabIndex = 38;
|
||||
//
|
||||
// labelSurname
|
||||
//
|
||||
this.labelSurname.AutoSize = true;
|
||||
this.labelSurname.Location = new System.Drawing.Point(79, 118);
|
||||
this.labelSurname.Name = "labelSurname";
|
||||
this.labelSurname.Size = new System.Drawing.Size(58, 15);
|
||||
this.labelSurname.TabIndex = 37;
|
||||
this.labelSurname.Text = "Фамилия";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
this.textBoxName.Location = new System.Drawing.Point(79, 89);
|
||||
this.textBoxName.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxName.Name = "textBoxName";
|
||||
this.textBoxName.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxName.TabIndex = 36;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
this.labelName.AutoSize = true;
|
||||
this.labelName.Location = new System.Drawing.Point(79, 71);
|
||||
this.labelName.Name = "labelName";
|
||||
this.labelName.Size = new System.Drawing.Size(31, 15);
|
||||
this.labelName.TabIndex = 35;
|
||||
this.labelName.Text = "Имя";
|
||||
//
|
||||
// UpdateClientsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(397, 464);
|
||||
this.Controls.Add(this.textBoxDate);
|
||||
this.Controls.Add(this.textBoxPhoneNumber);
|
||||
this.Controls.Add(this.labelPhoneNumber);
|
||||
this.Controls.Add(this.labelDate);
|
||||
this.Controls.Add(this.textBoxEmail);
|
||||
this.Controls.Add(this.labelEmail);
|
||||
this.Controls.Add(this.textBoxPatronymic);
|
||||
this.Controls.Add(this.labelPatronymic);
|
||||
this.Controls.Add(this.textBoxSurname);
|
||||
this.Controls.Add(this.labelSurname);
|
||||
this.Controls.Add(this.textBoxName);
|
||||
this.Controls.Add(this.labelName);
|
||||
this.Controls.Add(this.comboBoxUpdateClient);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.buttonUpdateClient);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "UpdateClientsForm";
|
||||
this.Text = "Обновить клиента";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private Button buttonUpdateClient;
|
||||
private Label label1;
|
||||
private ComboBox comboBoxUpdateClient;
|
||||
private TextBox textBoxDate;
|
||||
private TextBox textBoxPhoneNumber;
|
||||
private Label labelPhoneNumber;
|
||||
private Label labelDate;
|
||||
private TextBox textBoxEmail;
|
||||
private Label labelEmail;
|
||||
private TextBox textBoxPatronymic;
|
||||
private Label labelPatronymic;
|
||||
private TextBox textBoxSurname;
|
||||
private Label labelSurname;
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
}
|
||||
}
|
110
BulletinBoard/BulletinBoard/ClientsForm/UpdateClientsForm.cs
Normal file
110
BulletinBoard/BulletinBoard/ClientsForm/UpdateClientsForm.cs
Normal file
@ -0,0 +1,110 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class UpdateClientsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public UpdateClientsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxUpdateClient.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Clients");
|
||||
string Clients = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
Clients = result.Rows[i]["clients_id"].ToString() + " | " +
|
||||
(string)result.Rows[i]["name"] + " | " +
|
||||
result.Rows[i]["surname"].ToString() + " | " +
|
||||
(string)result.Rows[i]["patronymic"] + " | " +
|
||||
result.Rows[i]["email"].ToString() + " | " +
|
||||
result.Rows[i]["phone_number"].ToString() + " | " +
|
||||
((DateTime)result.Rows[i]["registration_date"]).ToString("dd.MM.yyyy") + "\n";
|
||||
comboBoxUpdateClient.Items.Add(Clients);
|
||||
}
|
||||
}
|
||||
private void buttonUpdateClient_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedClients = comboBoxUpdateClient.SelectedItem.ToString().Split("|");
|
||||
int clients_id = int.Parse(selectedClients[0].Trim());
|
||||
|
||||
string query = $"UPDATE clients SET ";
|
||||
int len = query.Length;
|
||||
|
||||
|
||||
string oldName = managmentDatabase.getRowTableById("clients", "name", clients_id).ToString();
|
||||
string oldSurname = managmentDatabase.getRowTableById("clients", "surname", clients_id).ToString();
|
||||
string oldPatronymic = managmentDatabase.getRowTableById("clients", "patronymic", clients_id).ToString();
|
||||
string oldEmail = managmentDatabase.getRowTableById("clients", "email", clients_id).ToString();
|
||||
string oldPhoneNumber = managmentDatabase.getRowTableById("clients", "phone_number", clients_id).ToString();
|
||||
string oldDate = ((DateTime)managmentDatabase.getRowTableById("clients", "registration_date", clients_id)).ToString("dd.MM.yyyy");
|
||||
|
||||
string newName = textBoxName.Text;
|
||||
string newSurname = textBoxSurname.Text;
|
||||
string newPatronymic = textBoxPatronymic.Text;
|
||||
string newEmail = textBoxEmail.Text;
|
||||
string newPhoneNumber = textBoxPhoneNumber.Text;
|
||||
string newDate = textBoxDate.Text;
|
||||
|
||||
|
||||
query = oldName == newName ? query : query + $"name = '{newName}', ";
|
||||
query = oldSurname == newSurname ? query : query + $"surname = '{newSurname}', ";
|
||||
query = oldPatronymic == newPatronymic ? query : query + $"patronymic = '{newPatronymic}', ";
|
||||
query = oldEmail == newEmail ? query : query + $"email = '{newEmail}', ";
|
||||
query = oldPhoneNumber == newPhoneNumber ? query : query + $"phone_number = {newPhoneNumber}, ";
|
||||
query = oldDate == newDate ? query : query + $"registration_date = '{newDate}', ";
|
||||
|
||||
if (len != query.Length)
|
||||
{
|
||||
query = query.TrimEnd(' ');
|
||||
query = query.TrimEnd(',');
|
||||
query += $" WHERE Clients_ID = {clients_id};";
|
||||
}
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.ExecuteNonQuery(query);
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Данные успешно обновлены! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
MessageBox.Show("Данные не обновились");
|
||||
}
|
||||
}
|
||||
public void LoadDataSelectedItem(int clients_id)
|
||||
{
|
||||
DataTable result = managmentDatabase.getEntryById("clients", clients_id);
|
||||
textBoxName.Text = managmentDatabase.getRowTableById(result, "name", 0).ToString();
|
||||
textBoxSurname.Text = managmentDatabase.getRowTableById(result, "surname", 0).ToString();
|
||||
textBoxPatronymic.Text = managmentDatabase.getRowTableById(result, "patronymic", 0).ToString();
|
||||
textBoxEmail.Text = managmentDatabase.getRowTableById(result, "email", 0).ToString();
|
||||
textBoxPhoneNumber.Text = managmentDatabase.getRowTableById(result, "phone_number", 0).ToString();
|
||||
textBoxDate.Text = ((DateTime)managmentDatabase.getRowTableById(result, "registration_date", 0)).ToString("dd.MM.yyyy");
|
||||
}
|
||||
|
||||
private void comboBoxUpdateClient_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedItems = comboBoxUpdateClient.SelectedItem.ToString().Split("|");
|
||||
int clients_id = int.Parse(selectedItems[0].Trim());
|
||||
LoadDataSelectedItem(clients_id);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
448
BulletinBoard/BulletinBoard/MainForm.Designer.cs
generated
Normal file
448
BulletinBoard/BulletinBoard/MainForm.Designer.cs
generated
Normal file
@ -0,0 +1,448 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
menuStrip1 = new MenuStrip();
|
||||
клиентыToolStripMenuItem = new ToolStripMenuItem();
|
||||
создатьКлиентаToolStripMenuItem = new ToolStripMenuItem();
|
||||
удалитьКлиентаToolStripMenuItem = new ToolStripMenuItem();
|
||||
изменитьДанныеКлиентаToolStripMenuItem = new ToolStripMenuItem();
|
||||
списокКлиентвToolStripMenuItem = new ToolStripMenuItem();
|
||||
объявленияToolStripMenuItem = new ToolStripMenuItem();
|
||||
создатьОбъявлениеToolStripMenuItem = new ToolStripMenuItem();
|
||||
удалитьОбъявлениеToolStripMenuItem = new ToolStripMenuItem();
|
||||
изменитьОбъявлениеэToolStripMenuItem = new ToolStripMenuItem();
|
||||
списокОбъявленийToolStripMenuItem = new ToolStripMenuItem();
|
||||
категорииToolStripMenuItem = new ToolStripMenuItem();
|
||||
создатьКатегориюToolStripMenuItem = new ToolStripMenuItem();
|
||||
удалитьКатегориюToolStripMenuItem = new ToolStripMenuItem();
|
||||
изменитьКатегориюToolStripMenuItem = new ToolStripMenuItem();
|
||||
списокКатегорийToolStripMenuItem = new ToolStripMenuItem();
|
||||
подкатегорииToolStripMenuItem = new ToolStripMenuItem();
|
||||
создатьПодкатеориюToolStripMenuItem = new ToolStripMenuItem();
|
||||
удалитьПодкатегориюToolStripMenuItem = new ToolStripMenuItem();
|
||||
изменитьПодкатегориюToolStripMenuItem = new ToolStripMenuItem();
|
||||
списокПодкатегоийToolStripMenuItem = new ToolStripMenuItem();
|
||||
toolStripMenuItem1 = new ToolStripMenuItem();
|
||||
toolStripMenuItem2 = new ToolStripMenuItem();
|
||||
toolStripMenuItem3 = new ToolStripMenuItem();
|
||||
toolStripMenuItem4 = new ToolStripMenuItem();
|
||||
toolStripMenuItem5 = new ToolStripMenuItem();
|
||||
label1 = new Label();
|
||||
button1 = new Button();
|
||||
panel1 = new Panel();
|
||||
panel2 = new Panel();
|
||||
button2 = new Button();
|
||||
label2 = new Label();
|
||||
panel3 = new Panel();
|
||||
button3 = new Button();
|
||||
label3 = new Label();
|
||||
toolStripMenuItem6 = new ToolStripMenuItem();
|
||||
toolStripMenuItem7 = new ToolStripMenuItem();
|
||||
toolStripMenuItem8 = new ToolStripMenuItem();
|
||||
toolStripMenuItem9 = new ToolStripMenuItem();
|
||||
toolStripMenuItem10 = new ToolStripMenuItem();
|
||||
menuStrip1.SuspendLayout();
|
||||
panel1.SuspendLayout();
|
||||
panel2.SuspendLayout();
|
||||
panel3.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
menuStrip1.ImageScalingSize = new Size(20, 20);
|
||||
menuStrip1.Items.AddRange(new ToolStripItem[] { клиентыToolStripMenuItem, объявленияToolStripMenuItem, категорииToolStripMenuItem, подкатегорииToolStripMenuItem, toolStripMenuItem1, toolStripMenuItem6 });
|
||||
menuStrip1.Location = new Point(0, 0);
|
||||
menuStrip1.Name = "menuStrip1";
|
||||
menuStrip1.Padding = new Padding(5, 2, 0, 2);
|
||||
menuStrip1.Size = new Size(700, 24);
|
||||
menuStrip1.TabIndex = 0;
|
||||
menuStrip1.Text = "menuStrip1";
|
||||
//
|
||||
// клиентыToolStripMenuItem
|
||||
//
|
||||
клиентыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { создатьКлиентаToolStripMenuItem, удалитьКлиентаToolStripMenuItem, изменитьДанныеКлиентаToolStripMenuItem, списокКлиентвToolStripMenuItem });
|
||||
клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem";
|
||||
клиентыToolStripMenuItem.Size = new Size(67, 20);
|
||||
клиентыToolStripMenuItem.Text = "Клиенты";
|
||||
//
|
||||
// создатьКлиентаToolStripMenuItem
|
||||
//
|
||||
создатьКлиентаToolStripMenuItem.Name = "создатьКлиентаToolStripMenuItem";
|
||||
создатьКлиентаToolStripMenuItem.Size = new Size(219, 22);
|
||||
создатьКлиентаToolStripMenuItem.Text = "Создать клиента";
|
||||
создатьКлиентаToolStripMenuItem.Click += создатьКлиентаToolStripMenuItem_Click;
|
||||
//
|
||||
// удалитьКлиентаToolStripMenuItem
|
||||
//
|
||||
удалитьКлиентаToolStripMenuItem.Name = "удалитьКлиентаToolStripMenuItem";
|
||||
удалитьКлиентаToolStripMenuItem.Size = new Size(219, 22);
|
||||
удалитьКлиентаToolStripMenuItem.Text = "Удалить клиента";
|
||||
удалитьКлиентаToolStripMenuItem.Click += удалитьКлиентаToolStripMenuItem_Click;
|
||||
//
|
||||
// изменитьДанныеКлиентаToolStripMenuItem
|
||||
//
|
||||
изменитьДанныеКлиентаToolStripMenuItem.Name = "изменитьДанныеКлиентаToolStripMenuItem";
|
||||
изменитьДанныеКлиентаToolStripMenuItem.Size = new Size(219, 22);
|
||||
изменитьДанныеКлиентаToolStripMenuItem.Text = "Изменить данные клиента";
|
||||
изменитьДанныеКлиентаToolStripMenuItem.Click += изменитьДанныеКлиентаToolStripMenuItem_Click;
|
||||
//
|
||||
// списокКлиентвToolStripMenuItem
|
||||
//
|
||||
списокКлиентвToolStripMenuItem.Name = "списокКлиентвToolStripMenuItem";
|
||||
списокКлиентвToolStripMenuItem.Size = new Size(219, 22);
|
||||
списокКлиентвToolStripMenuItem.Text = "Список клиентов";
|
||||
списокКлиентвToolStripMenuItem.Click += списокКлиентвToolStripMenuItem_Click;
|
||||
//
|
||||
// объявленияToolStripMenuItem
|
||||
//
|
||||
объявленияToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { создатьОбъявлениеToolStripMenuItem, удалитьОбъявлениеToolStripMenuItem, изменитьОбъявлениеэToolStripMenuItem, списокОбъявленийToolStripMenuItem });
|
||||
объявленияToolStripMenuItem.Name = "объявленияToolStripMenuItem";
|
||||
объявленияToolStripMenuItem.Size = new Size(87, 20);
|
||||
объявленияToolStripMenuItem.Text = "Объявления";
|
||||
//
|
||||
// создатьОбъявлениеToolStripMenuItem
|
||||
//
|
||||
создатьОбъявлениеToolStripMenuItem.Name = "создатьОбъявлениеToolStripMenuItem";
|
||||
создатьОбъявлениеToolStripMenuItem.Size = new Size(197, 22);
|
||||
создатьОбъявлениеToolStripMenuItem.Text = "Создать объявление";
|
||||
создатьОбъявлениеToolStripMenuItem.Click += создатьОбъявлениеToolStripMenuItem_Click;
|
||||
//
|
||||
// удалитьОбъявлениеToolStripMenuItem
|
||||
//
|
||||
удалитьОбъявлениеToolStripMenuItem.Name = "удалитьОбъявлениеToolStripMenuItem";
|
||||
удалитьОбъявлениеToolStripMenuItem.Size = new Size(197, 22);
|
||||
удалитьОбъявлениеToolStripMenuItem.Text = "Удалить объявление";
|
||||
удалитьОбъявлениеToolStripMenuItem.Click += удалитьОбъявлениеToolStripMenuItem_Click;
|
||||
//
|
||||
// изменитьОбъявлениеэToolStripMenuItem
|
||||
//
|
||||
изменитьОбъявлениеэToolStripMenuItem.Name = "изменитьОбъявлениеэToolStripMenuItem";
|
||||
изменитьОбъявлениеэToolStripMenuItem.Size = new Size(197, 22);
|
||||
изменитьОбъявлениеэToolStripMenuItem.Text = "Изменить объявление";
|
||||
изменитьОбъявлениеэToolStripMenuItem.Click += изменитьОбъявлениеэToolStripMenuItem_Click;
|
||||
//
|
||||
// списокОбъявленийToolStripMenuItem
|
||||
//
|
||||
списокОбъявленийToolStripMenuItem.Name = "списокОбъявленийToolStripMenuItem";
|
||||
списокОбъявленийToolStripMenuItem.Size = new Size(197, 22);
|
||||
списокОбъявленийToolStripMenuItem.Text = "Список объявлений";
|
||||
списокОбъявленийToolStripMenuItem.Click += списокОбъявленийToolStripMenuItem_Click;
|
||||
//
|
||||
// категорииToolStripMenuItem
|
||||
//
|
||||
категорииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { создатьКатегориюToolStripMenuItem, удалитьКатегориюToolStripMenuItem, изменитьКатегориюToolStripMenuItem, списокКатегорийToolStripMenuItem });
|
||||
категорииToolStripMenuItem.Name = "категорииToolStripMenuItem";
|
||||
категорииToolStripMenuItem.Size = new Size(76, 20);
|
||||
категорииToolStripMenuItem.Text = "Категории";
|
||||
//
|
||||
// создатьКатегориюToolStripMenuItem
|
||||
//
|
||||
создатьКатегориюToolStripMenuItem.Name = "создатьКатегориюToolStripMenuItem";
|
||||
создатьКатегориюToolStripMenuItem.Size = new Size(190, 22);
|
||||
создатьКатегориюToolStripMenuItem.Text = "Создать категорию";
|
||||
создатьКатегориюToolStripMenuItem.Click += создатьКатегориюToolStripMenuItem_Click;
|
||||
//
|
||||
// удалитьКатегориюToolStripMenuItem
|
||||
//
|
||||
удалитьКатегориюToolStripMenuItem.Name = "удалитьКатегориюToolStripMenuItem";
|
||||
удалитьКатегориюToolStripMenuItem.Size = new Size(190, 22);
|
||||
удалитьКатегориюToolStripMenuItem.Text = "Удалить категорию";
|
||||
удалитьКатегориюToolStripMenuItem.Click += удалитьКатегориюToolStripMenuItem_Click;
|
||||
//
|
||||
// изменитьКатегориюToolStripMenuItem
|
||||
//
|
||||
изменитьКатегориюToolStripMenuItem.Name = "изменитьКатегориюToolStripMenuItem";
|
||||
изменитьКатегориюToolStripMenuItem.Size = new Size(190, 22);
|
||||
изменитьКатегориюToolStripMenuItem.Text = "Изменить категорию";
|
||||
изменитьКатегориюToolStripMenuItem.Click += изменитьКатегориюToolStripMenuItem_Click;
|
||||
//
|
||||
// списокКатегорийToolStripMenuItem
|
||||
//
|
||||
списокКатегорийToolStripMenuItem.Name = "списокКатегорийToolStripMenuItem";
|
||||
списокКатегорийToolStripMenuItem.Size = new Size(190, 22);
|
||||
списокКатегорийToolStripMenuItem.Text = "Список категорий";
|
||||
списокКатегорийToolStripMenuItem.Click += списокКатегорийToolStripMenuItem_Click;
|
||||
//
|
||||
// подкатегорииToolStripMenuItem
|
||||
//
|
||||
подкатегорииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { создатьПодкатеориюToolStripMenuItem, удалитьПодкатегориюToolStripMenuItem, изменитьПодкатегориюToolStripMenuItem, списокПодкатегоийToolStripMenuItem });
|
||||
подкатегорииToolStripMenuItem.Name = "подкатегорииToolStripMenuItem";
|
||||
подкатегорииToolStripMenuItem.Size = new Size(97, 20);
|
||||
подкатегорииToolStripMenuItem.Text = "Подкатегории";
|
||||
//
|
||||
// создатьПодкатеориюToolStripMenuItem
|
||||
//
|
||||
создатьПодкатеориюToolStripMenuItem.Name = "создатьПодкатеориюToolStripMenuItem";
|
||||
создатьПодкатеориюToolStripMenuItem.Size = new Size(210, 22);
|
||||
создатьПодкатеориюToolStripMenuItem.Text = "Создать подкатегорию";
|
||||
создатьПодкатеориюToolStripMenuItem.Click += создатьПодкатеориюToolStripMenuItem_Click;
|
||||
//
|
||||
// удалитьПодкатегориюToolStripMenuItem
|
||||
//
|
||||
удалитьПодкатегориюToolStripMenuItem.Name = "удалитьПодкатегориюToolStripMenuItem";
|
||||
удалитьПодкатегориюToolStripMenuItem.Size = new Size(210, 22);
|
||||
удалитьПодкатегориюToolStripMenuItem.Text = "Удалить подкатегорию";
|
||||
удалитьПодкатегориюToolStripMenuItem.Click += удалитьПодкатегориюToolStripMenuItem_Click;
|
||||
//
|
||||
// изменитьПодкатегориюToolStripMenuItem
|
||||
//
|
||||
изменитьПодкатегориюToolStripMenuItem.Name = "изменитьПодкатегориюToolStripMenuItem";
|
||||
изменитьПодкатегориюToolStripMenuItem.Size = new Size(210, 22);
|
||||
изменитьПодкатегориюToolStripMenuItem.Text = "Изменить подкатегорию";
|
||||
изменитьПодкатегориюToolStripMenuItem.Click += изменитьПодкатегориюToolStripMenuItem_Click;
|
||||
//
|
||||
// списокПодкатегоийToolStripMenuItem
|
||||
//
|
||||
списокПодкатегоийToolStripMenuItem.Name = "списокПодкатегоийToolStripMenuItem";
|
||||
списокПодкатегоийToolStripMenuItem.Size = new Size(210, 22);
|
||||
списокПодкатегоийToolStripMenuItem.Text = "Список подкатегорий";
|
||||
списокПодкатегоийToolStripMenuItem.Click += списокПодкатегоийToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem1
|
||||
//
|
||||
toolStripMenuItem1.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem2, toolStripMenuItem3, toolStripMenuItem4, toolStripMenuItem5 });
|
||||
toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||
toolStripMenuItem1.Size = new Size(67, 20);
|
||||
toolStripMenuItem1.Text = "Регионы";
|
||||
//
|
||||
// toolStripMenuItem2
|
||||
//
|
||||
toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||
toolStripMenuItem2.Size = new Size(180, 22);
|
||||
toolStripMenuItem2.Text = "Создать регион";
|
||||
toolStripMenuItem2.Click += создатьРегионToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem3
|
||||
//
|
||||
toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||
toolStripMenuItem3.Size = new Size(180, 22);
|
||||
toolStripMenuItem3.Text = "Удалить регион";
|
||||
toolStripMenuItem3.Click += удалитьРегионToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem4
|
||||
//
|
||||
toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||
toolStripMenuItem4.Size = new Size(180, 22);
|
||||
toolStripMenuItem4.Text = "Изменить регион";
|
||||
toolStripMenuItem4.Click += изменитьРегионToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem5
|
||||
//
|
||||
toolStripMenuItem5.Name = "toolStripMenuItem5";
|
||||
toolStripMenuItem5.Size = new Size(180, 22);
|
||||
toolStripMenuItem5.Text = "Список регион";
|
||||
toolStripMenuItem5.Click += списокРегионToolStripMenuItem_Click;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(3, 11);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(225, 15);
|
||||
label1.TabIndex = 1;
|
||||
label1.Text = "Сценарий 1: Добавление 1000 клиентов";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(63, 66);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(95, 33);
|
||||
button1.TabIndex = 2;
|
||||
button1.Text = "Старт";
|
||||
button1.UseVisualStyleBackColor = true;
|
||||
button1.Click += button1_Click;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(button1);
|
||||
panel1.Controls.Add(label1);
|
||||
panel1.Location = new Point(12, 83);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(222, 102);
|
||||
panel1.TabIndex = 3;
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
panel2.Controls.Add(button2);
|
||||
panel2.Controls.Add(label2);
|
||||
panel2.Location = new Point(240, 83);
|
||||
panel2.Name = "panel2";
|
||||
panel2.Size = new Size(222, 102);
|
||||
panel2.TabIndex = 4;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.Location = new Point(63, 66);
|
||||
button2.Name = "button2";
|
||||
button2.Size = new Size(95, 33);
|
||||
button2.TabIndex = 2;
|
||||
button2.Text = "Старт";
|
||||
button2.UseVisualStyleBackColor = true;
|
||||
button2.Click += button2_Click;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new Point(3, 11);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(210, 15);
|
||||
label2.TabIndex = 1;
|
||||
label2.Text = "Сценарий 2: Удаление 1000 клиентов";
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
panel3.Controls.Add(button3);
|
||||
panel3.Controls.Add(label3);
|
||||
panel3.Location = new Point(468, 83);
|
||||
panel3.Name = "panel3";
|
||||
panel3.Size = new Size(222, 102);
|
||||
panel3.TabIndex = 5;
|
||||
//
|
||||
// button3
|
||||
//
|
||||
button3.Location = new Point(63, 66);
|
||||
button3.Name = "button3";
|
||||
button3.Size = new Size(95, 33);
|
||||
button3.TabIndex = 2;
|
||||
button3.Text = "Старт";
|
||||
button3.UseVisualStyleBackColor = true;
|
||||
button3.Click += button3_Click;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.Location = new Point(7, 11);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(213, 44);
|
||||
label3.TabIndex = 1;
|
||||
label3.Text = "Сценарий 3: Изменение фамилий 1000 клиентов на \"surname2\"";
|
||||
//
|
||||
// toolStripMenuItem6
|
||||
//
|
||||
toolStripMenuItem6.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem7, toolStripMenuItem8, toolStripMenuItem9, toolStripMenuItem10 });
|
||||
toolStripMenuItem6.Name = "toolStripMenuItem6";
|
||||
toolStripMenuItem6.Size = new Size(58, 20);
|
||||
toolStripMenuItem6.Text = "Города";
|
||||
//
|
||||
// toolStripMenuItem7
|
||||
//
|
||||
toolStripMenuItem7.Name = "toolStripMenuItem7";
|
||||
toolStripMenuItem7.Size = new Size(180, 22);
|
||||
toolStripMenuItem7.Text = "Создать город";
|
||||
toolStripMenuItem7.Click += создатьГородToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem8
|
||||
//
|
||||
toolStripMenuItem8.Name = "toolStripMenuItem8";
|
||||
toolStripMenuItem8.Size = new Size(180, 22);
|
||||
toolStripMenuItem8.Text = "Удалить город";
|
||||
toolStripMenuItem8.Click += удалитьГородToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem9
|
||||
//
|
||||
toolStripMenuItem9.Name = "toolStripMenuItem9";
|
||||
toolStripMenuItem9.Size = new Size(180, 22);
|
||||
toolStripMenuItem9.Text = "Изменить город";
|
||||
toolStripMenuItem9.Click += изменитьГородToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem10
|
||||
//
|
||||
toolStripMenuItem10.Name = "toolStripMenuItem10";
|
||||
toolStripMenuItem10.Size = new Size(180, 22);
|
||||
toolStripMenuItem10.Text = "Список город";
|
||||
toolStripMenuItem10.Click += списокГородToolStripMenuItem_Click;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(700, 338);
|
||||
Controls.Add(panel3);
|
||||
Controls.Add(panel2);
|
||||
Controls.Add(panel1);
|
||||
Controls.Add(menuStrip1);
|
||||
MainMenuStrip = menuStrip1;
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "MainForm";
|
||||
Text = "MainForm";
|
||||
menuStrip1.ResumeLayout(false);
|
||||
menuStrip1.PerformLayout();
|
||||
panel1.ResumeLayout(false);
|
||||
panel1.PerformLayout();
|
||||
panel2.ResumeLayout(false);
|
||||
panel2.PerformLayout();
|
||||
panel3.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private MenuStrip menuStrip1;
|
||||
private ToolStripMenuItem клиентыToolStripMenuItem;
|
||||
private ToolStripMenuItem создатьКлиентаToolStripMenuItem;
|
||||
private ToolStripMenuItem удалитьКлиентаToolStripMenuItem;
|
||||
private ToolStripMenuItem изменитьДанныеКлиентаToolStripMenuItem;
|
||||
private ToolStripMenuItem списокКлиентвToolStripMenuItem;
|
||||
private ToolStripMenuItem объявленияToolStripMenuItem;
|
||||
private ToolStripMenuItem создатьОбъявлениеToolStripMenuItem;
|
||||
private ToolStripMenuItem категорииToolStripMenuItem;
|
||||
private ToolStripMenuItem подкатегорииToolStripMenuItem;
|
||||
private ToolStripMenuItem удалитьОбъявлениеToolStripMenuItem;
|
||||
private ToolStripMenuItem изменитьОбъявлениеэToolStripMenuItem;
|
||||
private ToolStripMenuItem списокОбъявленийToolStripMenuItem;
|
||||
private ToolStripMenuItem создатьКатегориюToolStripMenuItem;
|
||||
private ToolStripMenuItem удалитьКатегориюToolStripMenuItem;
|
||||
private ToolStripMenuItem изменитьКатегориюToolStripMenuItem;
|
||||
private ToolStripMenuItem списокКатегорийToolStripMenuItem;
|
||||
private ToolStripMenuItem создатьПодкатеориюToolStripMenuItem;
|
||||
private ToolStripMenuItem удалитьПодкатегориюToolStripMenuItem;
|
||||
private ToolStripMenuItem изменитьПодкатегориюToolStripMenuItem;
|
||||
private ToolStripMenuItem списокПодкатегоийToolStripMenuItem;
|
||||
private Label label1;
|
||||
private Button button1;
|
||||
private Panel panel1;
|
||||
private Panel panel2;
|
||||
private Button button2;
|
||||
private Label label2;
|
||||
private Panel panel3;
|
||||
private Button button3;
|
||||
private Label label3;
|
||||
private ToolStripMenuItem toolStripMenuItem1;
|
||||
private ToolStripMenuItem toolStripMenuItem2;
|
||||
private ToolStripMenuItem toolStripMenuItem3;
|
||||
private ToolStripMenuItem toolStripMenuItem4;
|
||||
private ToolStripMenuItem toolStripMenuItem5;
|
||||
private ToolStripMenuItem toolStripMenuItem6;
|
||||
private ToolStripMenuItem toolStripMenuItem7;
|
||||
private ToolStripMenuItem toolStripMenuItem8;
|
||||
private ToolStripMenuItem toolStripMenuItem9;
|
||||
private ToolStripMenuItem toolStripMenuItem10;
|
||||
}
|
||||
}
|
205
BulletinBoard/BulletinBoard/MainForm.cs
Normal file
205
BulletinBoard/BulletinBoard/MainForm.cs
Normal file
@ -0,0 +1,205 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
managmentDatabase = new ManagmentDatabase("Server=192.168.56.101;Port=5432;User Id=postgres;Password=postgres;Database=lab4;");
|
||||
}
|
||||
|
||||
private void создатьКатегориюToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateCategoriesForm ccf = new CreateCategoriesForm(managmentDatabase);
|
||||
ccf.Show();
|
||||
}
|
||||
|
||||
private void удалитьКатегориюToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteCategoriesForm dcf = new DeleteCategoriesForm(managmentDatabase);
|
||||
dcf.Show();
|
||||
}
|
||||
|
||||
private void изменитьКатегориюToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateCategoriesForm ucf = new UpdateCategoriesForm(managmentDatabase);
|
||||
ucf.Show();
|
||||
}
|
||||
|
||||
private void списокКатегорийToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ListCategoriesForm lcf = new ListCategoriesForm(managmentDatabase);
|
||||
lcf.Show();
|
||||
}
|
||||
|
||||
private void создатьРегионToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateRegionsForm crf = new CreateRegionsForm(managmentDatabase);
|
||||
crf.Show();
|
||||
}
|
||||
|
||||
private void удалитьРегионToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteRegionsForm drf = new DeleteRegionsForm(managmentDatabase);
|
||||
drf.Show();
|
||||
}
|
||||
|
||||
private void изменитьРегионToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateRegionsForm urf = new UpdateRegionsForm(managmentDatabase);
|
||||
urf.Show();
|
||||
}
|
||||
|
||||
private void списокРегионToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ListRegionsForm lrf = new ListRegionsForm(managmentDatabase);
|
||||
lrf.Show();
|
||||
}
|
||||
|
||||
private void создатьГородToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateCitiesForm crf = new CreateCitiesForm(managmentDatabase);
|
||||
crf.Show();
|
||||
}
|
||||
|
||||
private void удалитьГородToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteCitiesForm drf = new DeleteCitiesForm(managmentDatabase);
|
||||
drf.Show();
|
||||
}
|
||||
|
||||
private void изменитьГородToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateCitiesForm urf = new UpdateCitiesForm(managmentDatabase);
|
||||
urf.Show();
|
||||
}
|
||||
|
||||
private void списокГородToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ListCitiesForm lrf = new ListCitiesForm(managmentDatabase);
|
||||
lrf.Show();
|
||||
}
|
||||
|
||||
private void создатьОбъявлениеToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateAdsForm caf = new CreateAdsForm(managmentDatabase);
|
||||
caf.Show();
|
||||
}
|
||||
|
||||
private void удалитьОбъявлениеToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteAdsForm uaf = new DeleteAdsForm(managmentDatabase);
|
||||
uaf.Show();
|
||||
}
|
||||
|
||||
private void изменитьОбъявлениеэToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateAdsForm daf = new UpdateAdsForm(managmentDatabase);
|
||||
daf.Show();
|
||||
}
|
||||
|
||||
private void списокОбъявленийToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ListAdsForm laf = new ListAdsForm(managmentDatabase);
|
||||
laf.Show();
|
||||
}
|
||||
|
||||
private void создатьКлиентаToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateClientsForm ccf = new CreateClientsForm(managmentDatabase);
|
||||
ccf.Show();
|
||||
}
|
||||
|
||||
private void удалитьКлиентаToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteClientsForm dcf = new DeleteClientsForm(managmentDatabase);
|
||||
dcf.Show();
|
||||
}
|
||||
|
||||
private void изменитьДанныеКлиентаToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateClientsForm ucf = new UpdateClientsForm(managmentDatabase);
|
||||
ucf.Show();
|
||||
}
|
||||
private void списокКлиентвToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ListClientsForm lcf = new ListClientsForm(managmentDatabase);
|
||||
lcf.Show();
|
||||
}
|
||||
|
||||
private void создатьПодкатеориюToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
CreateSubcategoriesForm csf = new CreateSubcategoriesForm(managmentDatabase);
|
||||
csf.Show();
|
||||
}
|
||||
|
||||
private void удалитьПодкатегориюToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
DeleteSubcategoriesForm dsf = new DeleteSubcategoriesForm(managmentDatabase);
|
||||
dsf.Show();
|
||||
}
|
||||
|
||||
private void изменитьПодкатегориюToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
UpdateSubcategoriesForm usf = new UpdateSubcategoriesForm(managmentDatabase);
|
||||
usf.Show();
|
||||
}
|
||||
|
||||
private void списокПодкатегоийToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
ListSubcategoriesForm lsf = new ListSubcategoriesForm(managmentDatabase);
|
||||
lsf.Show();
|
||||
}
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
managmentDatabase.insertInto("clients", "'name'", "'surname'", "'patronymic'", "'email@mail.ru'", $"{89372511129}", "'20.01.2022'");
|
||||
}
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Сценарий 1 завершен! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
managmentDatabase.deleteEntry("clients", "name");
|
||||
}
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Сценарий 2 завершен! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.ExecuteNonQuery("Update clients Set surname = 'surname2' where surname = 'surname'");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Сценарий 3 завершен! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
123
BulletinBoard/BulletinBoard/MainForm.resx
Normal file
123
BulletinBoard/BulletinBoard/MainForm.resx
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
85
BulletinBoard/BulletinBoard/ManagmentDatabase.cs
Normal file
85
BulletinBoard/BulletinBoard/ManagmentDatabase.cs
Normal file
@ -0,0 +1,85 @@
|
||||
using Npgsql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public class ManagmentDatabase : AbstractManagmentDatabase
|
||||
{
|
||||
protected NpgsqlConnection connection;
|
||||
|
||||
public ManagmentDatabase(String connectionString)
|
||||
{
|
||||
connection = new NpgsqlConnection(connectionString);
|
||||
}
|
||||
|
||||
public override Object getRowTableById(string tableName, string columnName, int id)
|
||||
{
|
||||
return ExecuteQuery($"SELECT {columnName} FROM {tableName} WHERE {tableName}_id = {id}").Rows[0][$"{columnName}"];
|
||||
}
|
||||
|
||||
public override Object getRowTableById(DataTable table, string columnName, int i)
|
||||
{
|
||||
return table.Rows[i][columnName];
|
||||
}
|
||||
|
||||
public override DataTable getEntryById(string tableName, int id)
|
||||
{
|
||||
return ExecuteQuery($"SELECT * FROM {tableName} WHERE {tableName}_id = {id}");
|
||||
}
|
||||
|
||||
public override DataTable getAllEntry(string tableName)
|
||||
{
|
||||
return ExecuteQuery($"SELECT * FROM {tableName}");
|
||||
}
|
||||
|
||||
public override void insertInto(string tableName, params string[] values)
|
||||
{
|
||||
string query = $"INSERT INTO {tableName} VALUES (nextval('seq_{tableName.ToLower()}'), "; // seq_{tableName.}
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
{
|
||||
if (i < values.Length - 1) query += $"{values[i]}, ";
|
||||
else query += $"{values[i]})";
|
||||
}
|
||||
ExecuteNonQuery(query);
|
||||
}
|
||||
|
||||
public override void deleteEntry(string tableName, int id)
|
||||
{
|
||||
ExecuteNonQuery($"DELETE FROM {tableName} WHERE {tableName}_id = {id}");
|
||||
}
|
||||
|
||||
public override void deleteEntry(string tableName, string name)
|
||||
{
|
||||
ExecuteNonQuery($"DELETE FROM {tableName} WHERE name = '{name}'");
|
||||
}
|
||||
|
||||
public override void reduceSeq(string seq, int currval)
|
||||
{
|
||||
ExecuteNonQuery($"SELECT setval('{seq}', {currval});");
|
||||
}
|
||||
|
||||
public override void ExecuteNonQuery(string query)
|
||||
{
|
||||
connection.Open();
|
||||
NpgsqlCommand command = new NpgsqlCommand(query, connection);
|
||||
command.ExecuteNonQuery();
|
||||
connection.Close();
|
||||
}
|
||||
|
||||
public override DataTable ExecuteQuery(string query)
|
||||
{
|
||||
connection.Open();
|
||||
NpgsqlCommand command = new NpgsqlCommand(query, connection);
|
||||
NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(command);
|
||||
DataTable result = new DataTable();
|
||||
adapter.Fill(result);
|
||||
connection.Close();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
17
BulletinBoard/BulletinBoard/Program.cs
Normal file
17
BulletinBoard/BulletinBoard/Program.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
internal static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
// To customize application configuration such as set high DPI settings or default font,
|
||||
// see https://aka.ms/applicationconfiguration.
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
}
|
||||
}
|
82
BulletinBoard/BulletinBoard/RegionsForm/CreateRegionsForm.Designer.cs
generated
Normal file
82
BulletinBoard/BulletinBoard/RegionsForm/CreateRegionsForm.Designer.cs
generated
Normal file
@ -0,0 +1,82 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class CreateRegionsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
buttonCreateCity = new Button();
|
||||
labelName = new Label();
|
||||
textBoxName = new TextBox();
|
||||
SuspendLayout();
|
||||
//
|
||||
// buttonCreateCity
|
||||
//
|
||||
buttonCreateCity.Location = new Point(49, 93);
|
||||
buttonCreateCity.Name = "buttonCreateCity";
|
||||
buttonCreateCity.Size = new Size(273, 39);
|
||||
buttonCreateCity.TabIndex = 0;
|
||||
buttonCreateCity.Text = "Добавить город";
|
||||
buttonCreateCity.UseVisualStyleBackColor = true;
|
||||
buttonCreateCity.Click += buttonCreateCity_Click;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(49, 11);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(77, 20);
|
||||
labelName.TabIndex = 1;
|
||||
labelName.Text = "Название";
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(49, 35);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(273, 27);
|
||||
textBoxName.TabIndex = 2;
|
||||
//
|
||||
// CreateRegionsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(370, 157);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelName);
|
||||
Controls.Add(buttonCreateCity);
|
||||
Name = "CreateRegionsForm";
|
||||
Text = "Добавить Город";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Button buttonCreateCity;
|
||||
private Label labelName;
|
||||
private TextBox textBoxName;
|
||||
}
|
||||
}
|
40
BulletinBoard/BulletinBoard/RegionsForm/CreateRegionsForm.cs
Normal file
40
BulletinBoard/BulletinBoard/RegionsForm/CreateRegionsForm.cs
Normal file
@ -0,0 +1,40 @@
|
||||
using System.Data;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class CreateRegionsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public CreateRegionsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
}
|
||||
|
||||
private void buttonCreateCity_Click(object sender, EventArgs e)
|
||||
{
|
||||
string name = textBoxName.Text;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.insertInto("regions", $"'{name}'");
|
||||
MessageBox.Show("Äîáàâëåíî!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Äîáàâëåíî! Âðåìÿ âûïîëíåíèÿ: {duration.TotalMilliseconds} ìñ");
|
||||
|
||||
// Çàêðûòü òåêóùóþ ôîðìó ïîñëå âûïîëíåíèÿ äåéñòâèé
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Íå óäàëîñü äîáàâèòü");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/RegionsForm/CreateRegionsForm.resx
Normal file
120
BulletinBoard/BulletinBoard/RegionsForm/CreateRegionsForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
86
BulletinBoard/BulletinBoard/RegionsForm/DeleteRegionsForm.Designer.cs
generated
Normal file
86
BulletinBoard/BulletinBoard/RegionsForm/DeleteRegionsForm.Designer.cs
generated
Normal file
@ -0,0 +1,86 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class DeleteRegionsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
buttonDeleteRegion = new Button();
|
||||
comboBoxDeleteRegions = new ComboBox();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(70, 16);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(242, 15);
|
||||
label1.TabIndex = 0;
|
||||
label1.Text = "Выберите регион, которую хотите удалить";
|
||||
//
|
||||
// buttonDeleteRegion
|
||||
//
|
||||
buttonDeleteRegion.Location = new Point(132, 85);
|
||||
buttonDeleteRegion.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonDeleteRegion.Name = "buttonDeleteRegion";
|
||||
buttonDeleteRegion.Size = new Size(163, 28);
|
||||
buttonDeleteRegion.TabIndex = 1;
|
||||
buttonDeleteRegion.Text = "Удалить";
|
||||
buttonDeleteRegion.UseVisualStyleBackColor = true;
|
||||
buttonDeleteRegion.Click += buttonDeleteRegion_Click;
|
||||
//
|
||||
// comboBoxDeleteRegions
|
||||
//
|
||||
comboBoxDeleteRegions.FormattingEnabled = true;
|
||||
comboBoxDeleteRegions.Location = new Point(35, 48);
|
||||
comboBoxDeleteRegions.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxDeleteRegions.Name = "comboBoxDeleteRegions";
|
||||
comboBoxDeleteRegions.Size = new Size(367, 23);
|
||||
comboBoxDeleteRegions.TabIndex = 2;
|
||||
//
|
||||
// DeleteRegionsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(442, 131);
|
||||
Controls.Add(comboBoxDeleteRegions);
|
||||
Controls.Add(buttonDeleteRegion);
|
||||
Controls.Add(label1);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "DeleteRegionsForm";
|
||||
Text = "Удалить регион";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Button buttonDeleteRegion;
|
||||
private ComboBox comboBoxDeleteRegions;
|
||||
}
|
||||
}
|
61
BulletinBoard/BulletinBoard/RegionsForm/DeleteRegionsForm.cs
Normal file
61
BulletinBoard/BulletinBoard/RegionsForm/DeleteRegionsForm.cs
Normal file
@ -0,0 +1,61 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class DeleteRegionsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
private int setval_seq;
|
||||
public DeleteRegionsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonDeleteRegion_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] categories = comboBoxDeleteRegions.SelectedItem.ToString().Split("|");
|
||||
string category_id = categories[0].Trim();
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.deleteEntry("regions", int.Parse(category_id));
|
||||
LoadData();
|
||||
if (setval_seq > 0) managmentDatabase.reduceSeq("seq_regions", setval_seq);
|
||||
MessageBox.Show("Удалено!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить");
|
||||
}
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxDeleteRegions.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Regions");
|
||||
setval_seq = result.Rows.Count;
|
||||
string Regions = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
setval_seq = Math.Max(Convert.ToInt32(managmentDatabase.getRowTableById(result, "regions_id", i)), setval_seq);
|
||||
Regions = managmentDatabase.getRowTableById(result, "regions_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
comboBoxDeleteRegions.Items.Add(Regions);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/RegionsForm/DeleteRegionsForm.resx
Normal file
120
BulletinBoard/BulletinBoard/RegionsForm/DeleteRegionsForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
74
BulletinBoard/BulletinBoard/RegionsForm/ListRegionsForm.Designer.cs
generated
Normal file
74
BulletinBoard/BulletinBoard/RegionsForm/ListRegionsForm.Designer.cs
generated
Normal file
@ -0,0 +1,74 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class ListRegionsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
labelListRegions = new Label();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = SystemColors.Control;
|
||||
label1.Font = new Font("Segoe UI", 11F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
label1.Location = new Point(10, 7);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(130, 20);
|
||||
label1.TabIndex = 0;
|
||||
label1.Text = "Список регионов";
|
||||
//
|
||||
// labelListRegions
|
||||
//
|
||||
labelListRegions.AutoSize = true;
|
||||
labelListRegions.Font = new Font("Segoe UI", 10F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
labelListRegions.Location = new Point(10, 35);
|
||||
labelListRegions.Name = "labelListRegions";
|
||||
labelListRegions.Size = new Size(0, 19);
|
||||
labelListRegions.TabIndex = 1;
|
||||
//
|
||||
// ListRegionsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(700, 338);
|
||||
Controls.Add(labelListRegions);
|
||||
Controls.Add(label1);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "ListRegionsForm";
|
||||
Text = "Список регионов";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label labelListRegions;
|
||||
}
|
||||
}
|
42
BulletinBoard/BulletinBoard/RegionsForm/ListRegionsForm.cs
Normal file
42
BulletinBoard/BulletinBoard/RegionsForm/ListRegionsForm.cs
Normal file
@ -0,0 +1,42 @@
|
||||
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.Windows.Forms.VisualStyles;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class ListRegionsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public ListRegionsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
DataTable result = managmentDatabase.getAllEntry("Regions");
|
||||
string listRegions = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
listRegions += managmentDatabase.getRowTableById(result, "regions_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
}
|
||||
labelListRegions.Text = listRegions;
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/RegionsForm/ListRegionsForm.resx
Normal file
120
BulletinBoard/BulletinBoard/RegionsForm/ListRegionsForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
109
BulletinBoard/BulletinBoard/RegionsForm/UpdateRegionsForm.Designer.cs
generated
Normal file
109
BulletinBoard/BulletinBoard/RegionsForm/UpdateRegionsForm.Designer.cs
generated
Normal file
@ -0,0 +1,109 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class UpdateRegionsForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
comboBoxUpdateRegion = new ComboBox();
|
||||
textBoxName = new TextBox();
|
||||
labelName = new Label();
|
||||
buttonUpdateRegion = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(51, 15);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(251, 15);
|
||||
label1.TabIndex = 33;
|
||||
label1.Text = "Выберите регион, которую хотите обновить";
|
||||
//
|
||||
// comboBoxUpdateRegion
|
||||
//
|
||||
comboBoxUpdateRegion.FormattingEnabled = true;
|
||||
comboBoxUpdateRegion.Location = new Point(10, 39);
|
||||
comboBoxUpdateRegion.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxUpdateRegion.Name = "comboBoxUpdateRegion";
|
||||
comboBoxUpdateRegion.Size = new Size(377, 23);
|
||||
comboBoxUpdateRegion.TabIndex = 34;
|
||||
comboBoxUpdateRegion.SelectedIndexChanged += comboBoxUpdateRegion_SelectedIndexChanged;
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(78, 96);
|
||||
textBoxName.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(239, 23);
|
||||
textBoxName.TabIndex = 37;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(78, 78);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(59, 15);
|
||||
labelName.TabIndex = 36;
|
||||
labelName.Text = "Название";
|
||||
//
|
||||
// buttonUpdateRegion
|
||||
//
|
||||
buttonUpdateRegion.Location = new Point(78, 140);
|
||||
buttonUpdateRegion.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonUpdateRegion.Name = "buttonUpdateRegion";
|
||||
buttonUpdateRegion.Size = new Size(239, 29);
|
||||
buttonUpdateRegion.TabIndex = 35;
|
||||
buttonUpdateRegion.Text = "Обновить регион";
|
||||
buttonUpdateRegion.UseVisualStyleBackColor = true;
|
||||
buttonUpdateRegion.Click += buttonUpdateRegion_Click_1;
|
||||
//
|
||||
// UpdateRegionsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(397, 190);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelName);
|
||||
Controls.Add(buttonUpdateRegion);
|
||||
Controls.Add(comboBoxUpdateRegion);
|
||||
Controls.Add(label1);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "UpdateRegionsForm";
|
||||
Text = "Обновить регион";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
private Label label1;
|
||||
private ComboBox comboBoxUpdateRegion;
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
private Button buttonUpdateRegion;
|
||||
}
|
||||
}
|
86
BulletinBoard/BulletinBoard/RegionsForm/UpdateRegionsForm.cs
Normal file
86
BulletinBoard/BulletinBoard/RegionsForm/UpdateRegionsForm.cs
Normal file
@ -0,0 +1,86 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class UpdateRegionsForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public UpdateRegionsForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxUpdateRegion.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Regions");
|
||||
string Regions = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
Regions = result.Rows[i]["regions_id"].ToString() + " | " +
|
||||
(string)result.Rows[i]["name"] + "\n";
|
||||
comboBoxUpdateRegion.Items.Add(Regions);
|
||||
}
|
||||
}
|
||||
public void LoadDataSelectedItem(int regions_id)
|
||||
{
|
||||
DataTable result = managmentDatabase.getEntryById("regions", regions_id);
|
||||
textBoxName.Text = managmentDatabase.getRowTableById(result, "name", 0).ToString();
|
||||
}
|
||||
|
||||
private void comboBoxUpdateRegion_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedItems = comboBoxUpdateRegion.SelectedItem.ToString().Split("|");
|
||||
int region_id = int.Parse(selectedItems[0].Trim());
|
||||
LoadDataSelectedItem(region_id);
|
||||
}
|
||||
|
||||
private void buttonUpdateRegion_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedCategory = comboBoxUpdateRegion.SelectedItem.ToString().Split("|");
|
||||
int region_id = int.Parse(selectedCategory[0].Trim());
|
||||
|
||||
string query = $"UPDATE Regions SET ";
|
||||
int len = query.Length;
|
||||
|
||||
|
||||
string oldName = managmentDatabase.getRowTableById("regions", "name", region_id).ToString();
|
||||
|
||||
string newName = textBoxName.Text;
|
||||
|
||||
|
||||
query = oldName == newName ? query : query + $"name = '{newName}', ";
|
||||
if (len != query.Length)
|
||||
{
|
||||
query = query.TrimEnd(' ');
|
||||
query = query.TrimEnd(',');
|
||||
query += $" WHERE Regions_ID = {region_id};";
|
||||
}
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.ExecuteNonQuery(query);
|
||||
MessageBox.Show("Данные успешно обновлены!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
MessageBox.Show("Данные не обновились");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
BulletinBoard/BulletinBoard/RegionsForm/UpdateRegionsForm.resx
Normal file
120
BulletinBoard/BulletinBoard/RegionsForm/UpdateRegionsForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
109
BulletinBoard/BulletinBoard/SubcategoriesForm/CreateSubcategoriesForm.Designer.cs
generated
Normal file
109
BulletinBoard/BulletinBoard/SubcategoriesForm/CreateSubcategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,109 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class CreateSubcategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
textBoxName = new TextBox();
|
||||
labelName = new Label();
|
||||
buttonCreateSubcategory = new Button();
|
||||
comboBoxCategory = new ComboBox();
|
||||
labelCategory = new Label();
|
||||
SuspendLayout();
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(37, 35);
|
||||
textBoxName.Margin = new Padding(3, 2, 3, 2);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(239, 23);
|
||||
textBoxName.TabIndex = 5;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
labelName.AutoSize = true;
|
||||
labelName.Location = new Point(37, 17);
|
||||
labelName.Name = "labelName";
|
||||
labelName.Size = new Size(59, 15);
|
||||
labelName.TabIndex = 4;
|
||||
labelName.Text = "Название";
|
||||
//
|
||||
// buttonCreateSubcategory
|
||||
//
|
||||
buttonCreateSubcategory.Location = new Point(37, 118);
|
||||
buttonCreateSubcategory.Margin = new Padding(3, 2, 3, 2);
|
||||
buttonCreateSubcategory.Name = "buttonCreateSubcategory";
|
||||
buttonCreateSubcategory.Size = new Size(239, 29);
|
||||
buttonCreateSubcategory.TabIndex = 3;
|
||||
buttonCreateSubcategory.Text = "Добавить подкатегорию";
|
||||
buttonCreateSubcategory.UseVisualStyleBackColor = true;
|
||||
buttonCreateSubcategory.Click += buttonCreateSubcategory_Click_1;
|
||||
//
|
||||
// comboBoxCategory
|
||||
//
|
||||
comboBoxCategory.FormattingEnabled = true;
|
||||
comboBoxCategory.Location = new Point(37, 83);
|
||||
comboBoxCategory.Margin = new Padding(3, 2, 3, 2);
|
||||
comboBoxCategory.Name = "comboBoxCategory";
|
||||
comboBoxCategory.Size = new Size(239, 23);
|
||||
comboBoxCategory.TabIndex = 17;
|
||||
//
|
||||
// labelCategory
|
||||
//
|
||||
labelCategory.AutoSize = true;
|
||||
labelCategory.Location = new Point(37, 67);
|
||||
labelCategory.Name = "labelCategory";
|
||||
labelCategory.Size = new Size(63, 15);
|
||||
labelCategory.TabIndex = 18;
|
||||
labelCategory.Text = "Категория";
|
||||
//
|
||||
// CreateSubcategoriesForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(324, 158);
|
||||
Controls.Add(labelCategory);
|
||||
Controls.Add(comboBoxCategory);
|
||||
Controls.Add(textBoxName);
|
||||
Controls.Add(labelName);
|
||||
Controls.Add(buttonCreateSubcategory);
|
||||
Margin = new Padding(3, 2, 3, 2);
|
||||
Name = "CreateSubcategoriesForm";
|
||||
Text = "Подкатегория";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
private Button buttonCreateSubcategory;
|
||||
private ComboBox comboBoxCategory;
|
||||
private Label labelCategory;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
using System.Data;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class CreateSubcategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public CreateSubcategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void buttonCreateSubcategory_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
string name = textBoxName.Text;
|
||||
string[] category = comboBoxCategory.SelectedItem.ToString().Split(" ");
|
||||
|
||||
string category_id = category[0];
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.insertInto("subcategories", $"'{name}'", category_id);
|
||||
MessageBox.Show("Äîáàâëåíî!");
|
||||
LoadData();
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Äîáàâëåíî! Âðåìÿ âûïîëíåíèÿ: {duration.TotalMilliseconds} ìñ");
|
||||
|
||||
// Çàêðûòü òåêóùóþ ôîðìó ïîñëå âûïîëíåíèÿ äåéñòâèé
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Íå óäàëîñü äîáàâèòü");
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
comboBoxCategory.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("CATEGORIES");
|
||||
string[] id_names = new string[result.Rows.Count];
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
id_names[i] = managmentDatabase.getRowTableById(result, "categories_id", i).ToString() + ". " + managmentDatabase.getRowTableById(result, "name", i).ToString();
|
||||
comboBoxCategory.Items.Add(id_names[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
87
BulletinBoard/BulletinBoard/SubcategoriesForm/DeleteSubcategoriesForm.Designer.cs
generated
Normal file
87
BulletinBoard/BulletinBoard/SubcategoriesForm/DeleteSubcategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,87 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class DeleteSubcategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.comboBoxDeleteSubcategories = new System.Windows.Forms.ComboBox();
|
||||
this.buttonDeleteSubcategory = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// comboBoxDeleteSubcategories
|
||||
//
|
||||
this.comboBoxDeleteSubcategories.FormattingEnabled = true;
|
||||
this.comboBoxDeleteSubcategories.Location = new System.Drawing.Point(38, 49);
|
||||
this.comboBoxDeleteSubcategories.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.comboBoxDeleteSubcategories.Name = "comboBoxDeleteSubcategories";
|
||||
this.comboBoxDeleteSubcategories.Size = new System.Drawing.Size(367, 23);
|
||||
this.comboBoxDeleteSubcategories.TabIndex = 5;
|
||||
//
|
||||
// buttonDeleteSubcategory
|
||||
//
|
||||
this.buttonDeleteSubcategory.Location = new System.Drawing.Point(135, 86);
|
||||
this.buttonDeleteSubcategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonDeleteSubcategory.Name = "buttonDeleteSubcategory";
|
||||
this.buttonDeleteSubcategory.Size = new System.Drawing.Size(163, 28);
|
||||
this.buttonDeleteSubcategory.TabIndex = 4;
|
||||
this.buttonDeleteSubcategory.Text = "Удалить";
|
||||
this.buttonDeleteSubcategory.UseVisualStyleBackColor = true;
|
||||
this.buttonDeleteSubcategory.Click += new System.EventHandler(this.buttonDeleteSubcategory_Click_1);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(73, 17);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(282, 15);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Выберите подкатегорию, которую хотите удалить";
|
||||
//
|
||||
// DeleteSubcategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(442, 131);
|
||||
this.Controls.Add(this.comboBoxDeleteSubcategories);
|
||||
this.Controls.Add(this.buttonDeleteSubcategory);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "DeleteSubcategoriesForm";
|
||||
this.Text = "Удалить подкатегорию";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private ComboBox comboBoxDeleteSubcategories;
|
||||
private Button buttonDeleteSubcategory;
|
||||
private Label label1;
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class DeleteSubcategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
private int setval_seq;
|
||||
public DeleteSubcategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxDeleteSubcategories.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Subcategories");
|
||||
setval_seq = result.Rows.Count;
|
||||
string Subcategories = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
setval_seq = Math.Max(Convert.ToInt32(managmentDatabase.getRowTableById(result, "subcategories_id", i)), setval_seq);
|
||||
Subcategories = managmentDatabase.getRowTableById(result, "subcategories_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
comboBoxDeleteSubcategories.Items.Add(Subcategories);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonDeleteSubcategory_Click_1(object sender, EventArgs e)
|
||||
{
|
||||
string[] subcategories = comboBoxDeleteSubcategories.SelectedItem.ToString().Split("|");
|
||||
string subcategory_id = subcategories[0].Trim();
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.deleteEntry("subcategories", int.Parse(subcategory_id));
|
||||
LoadData();
|
||||
if (setval_seq > 0) managmentDatabase.reduceSeq("seq_subcategories", setval_seq);
|
||||
MessageBox.Show("Удалено!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("Не удалось удалить");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
75
BulletinBoard/BulletinBoard/SubcategoriesForm/ListSubcategoriesForm.Designer.cs
generated
Normal file
75
BulletinBoard/BulletinBoard/SubcategoriesForm/ListSubcategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,75 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class ListSubcategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.labelListSubcategories = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.label1.Location = new System.Drawing.Point(10, 7);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(160, 20);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Список подкатегорий";
|
||||
//
|
||||
// labelListSubcategories
|
||||
//
|
||||
this.labelListSubcategories.AutoSize = true;
|
||||
this.labelListSubcategories.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.labelListSubcategories.Location = new System.Drawing.Point(10, 35);
|
||||
this.labelListSubcategories.Name = "labelListSubcategories";
|
||||
this.labelListSubcategories.Size = new System.Drawing.Size(0, 19);
|
||||
this.labelListSubcategories.TabIndex = 1;
|
||||
//
|
||||
// ListSubcategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(700, 338);
|
||||
this.Controls.Add(this.labelListSubcategories);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "ListSubcategoriesForm";
|
||||
this.Text = "Список подкатегорий";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label labelListSubcategories;
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
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.Windows.Forms.VisualStyles;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class ListSubcategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public ListSubcategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
|
||||
private void LoadData()
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
DataTable result = managmentDatabase.getAllEntry("Subcategories");
|
||||
string listSubcategories = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
listSubcategories += managmentDatabase.getRowTableById(result, "subcategories_id", i).ToString() + " | " +
|
||||
managmentDatabase.getRowTableById(result, "name", i).ToString() + "\n";
|
||||
}
|
||||
labelListSubcategories.Text = listSubcategories;
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
111
BulletinBoard/BulletinBoard/SubcategoriesForm/UpdateSubcategoriesForm.Designer.cs
generated
Normal file
111
BulletinBoard/BulletinBoard/SubcategoriesForm/UpdateSubcategoriesForm.Designer.cs
generated
Normal file
@ -0,0 +1,111 @@
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
partial class UpdateSubcategoriesForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.textBoxName = new System.Windows.Forms.TextBox();
|
||||
this.labelName = new System.Windows.Forms.Label();
|
||||
this.buttonUpdateSubcategory = new System.Windows.Forms.Button();
|
||||
this.comboBoxUpdateSubcategory = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
this.textBoxName.Location = new System.Drawing.Point(80, 104);
|
||||
this.textBoxName.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.textBoxName.Name = "textBoxName";
|
||||
this.textBoxName.Size = new System.Drawing.Size(239, 23);
|
||||
this.textBoxName.TabIndex = 42;
|
||||
//
|
||||
// labelName
|
||||
//
|
||||
this.labelName.AutoSize = true;
|
||||
this.labelName.Location = new System.Drawing.Point(80, 86);
|
||||
this.labelName.Name = "labelName";
|
||||
this.labelName.Size = new System.Drawing.Size(59, 15);
|
||||
this.labelName.TabIndex = 41;
|
||||
this.labelName.Text = "Название";
|
||||
//
|
||||
// buttonUpdateSubcategory
|
||||
//
|
||||
this.buttonUpdateSubcategory.Location = new System.Drawing.Point(80, 148);
|
||||
this.buttonUpdateSubcategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.buttonUpdateSubcategory.Name = "buttonUpdateSubcategory";
|
||||
this.buttonUpdateSubcategory.Size = new System.Drawing.Size(239, 29);
|
||||
this.buttonUpdateSubcategory.TabIndex = 40;
|
||||
this.buttonUpdateSubcategory.Text = "Обновить категорию";
|
||||
this.buttonUpdateSubcategory.UseVisualStyleBackColor = true;
|
||||
this.buttonUpdateSubcategory.Click += new System.EventHandler(this.buttonUpdateSubcategory_Click);
|
||||
//
|
||||
// comboBoxUpdateSubcategory
|
||||
//
|
||||
this.comboBoxUpdateSubcategory.FormattingEnabled = true;
|
||||
this.comboBoxUpdateSubcategory.Location = new System.Drawing.Point(12, 47);
|
||||
this.comboBoxUpdateSubcategory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.comboBoxUpdateSubcategory.Name = "comboBoxUpdateSubcategory";
|
||||
this.comboBoxUpdateSubcategory.Size = new System.Drawing.Size(377, 23);
|
||||
this.comboBoxUpdateSubcategory.TabIndex = 39;
|
||||
this.comboBoxUpdateSubcategory.SelectedIndexChanged += new System.EventHandler(this.comboBoxUpdateSubcategory_SelectedIndexChanged_1);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(53, 23);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(291, 15);
|
||||
this.label1.TabIndex = 38;
|
||||
this.label1.Text = "Выберите подкатегорию, которую хотите обновить";
|
||||
//
|
||||
// UpdateSubcategoriesForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(397, 195);
|
||||
this.Controls.Add(this.textBoxName);
|
||||
this.Controls.Add(this.labelName);
|
||||
this.Controls.Add(this.buttonUpdateSubcategory);
|
||||
this.Controls.Add(this.comboBoxUpdateSubcategory);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "UpdateSubcategoriesForm";
|
||||
this.Text = "Обновить подкатегорию";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
private Button buttonUpdateSubcategory;
|
||||
private ComboBox comboBoxUpdateSubcategory;
|
||||
private Label label1;
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
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;
|
||||
|
||||
namespace WebsiteForPlacingAds
|
||||
{
|
||||
public partial class UpdateSubcategoriesForm : Form
|
||||
{
|
||||
AbstractManagmentDatabase managmentDatabase;
|
||||
public UpdateSubcategoriesForm(AbstractManagmentDatabase managmentDatabase)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.managmentDatabase = managmentDatabase;
|
||||
LoadData();
|
||||
}
|
||||
public void LoadData()
|
||||
{
|
||||
comboBoxUpdateSubcategory.Items.Clear();
|
||||
DataTable result = managmentDatabase.getAllEntry("Subcategories");
|
||||
string Subcategories = "";
|
||||
for (int i = 0; i < result.Rows.Count; i++)
|
||||
{
|
||||
Subcategories = result.Rows[i]["subcategories_id"].ToString() + " | " +
|
||||
(string)result.Rows[i]["name"] + "\n";
|
||||
comboBoxUpdateSubcategory.Items.Add(Subcategories);
|
||||
}
|
||||
}
|
||||
public void LoadDataSelectedItem(int subcategories_id)
|
||||
{
|
||||
DataTable result = managmentDatabase.getEntryById("subcategories", subcategories_id);
|
||||
textBoxName.Text = managmentDatabase.getRowTableById(result, "name", 0).ToString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void buttonUpdateSubcategory_Click(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedSubcategory = comboBoxUpdateSubcategory.SelectedItem.ToString().Split("|");
|
||||
int subcategory_id = int.Parse(selectedSubcategory[0].Trim());
|
||||
|
||||
string query = $"UPDATE Subcategories SET ";
|
||||
int len = query.Length;
|
||||
|
||||
|
||||
string oldName = managmentDatabase.getRowTableById("subcategories", "name", subcategory_id).ToString();
|
||||
|
||||
string newName = textBoxName.Text;
|
||||
|
||||
|
||||
query = oldName == newName ? query : query + $"name = '{newName}', ";
|
||||
if (len != query.Length)
|
||||
{
|
||||
query = query.TrimEnd(' ');
|
||||
query = query.TrimEnd(',');
|
||||
query += $" WHERE Subcategories_ID = {subcategory_id};";
|
||||
}
|
||||
try
|
||||
{
|
||||
DateTime start = DateTime.Now;
|
||||
|
||||
managmentDatabase.ExecuteNonQuery(query);
|
||||
MessageBox.Show("Данные успешно обновлены!");
|
||||
|
||||
DateTime end = DateTime.Now;
|
||||
TimeSpan duration = end - start;
|
||||
MessageBox.Show($"Добавлено! Время выполнения: {duration.TotalMilliseconds} мс");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
MessageBox.Show("Данные не обновились");
|
||||
}
|
||||
}
|
||||
|
||||
private void comboBoxUpdateSubcategory_SelectedIndexChanged_1(object sender, EventArgs e)
|
||||
{
|
||||
string[] selectedItems = comboBoxUpdateSubcategory.SelectedItem.ToString().Split("|");
|
||||
int subcategory_id = int.Parse(selectedItems[0].Trim());
|
||||
LoadDataSelectedItem(subcategory_id);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
Loading…
Reference in New Issue
Block a user