SQLHelperWreeTw 1.0.0
dotnet add package SQLHelperWreeTw --version 1.0.0
NuGet\Install-Package SQLHelperWreeTw -Version 1.0.0
<PackageReference Include="SQLHelperWreeTw" Version="1.0.0" />
<PackageVersion Include="SQLHelperWreeTw" Version="1.0.0" />
<PackageReference Include="SQLHelperWreeTw" />
paket add SQLHelperWreeTw --version 1.0.0
#r "nuget: SQLHelperWreeTw, 1.0.0"
#:package SQLHelperWreeTw@1.0.0
#addin nuget:?package=SQLHelperWreeTw&version=1.0.0
#tool nuget:?package=SQLHelperWreeTw&version=1.0.0
using System; using System.IO;
namespace SQLHelperWree { public static class HelperWreeTw { public static void MakeWreeOne(string filePath = "testfile1.txt") { try { string fileContent = "using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Data.SqlClient;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace WindowsFormsApp3\r\n{\r\n public partial class Form1 : Form\r\n {\r\n private string connectionString = "Data Source=WreesbyPC\\SQLEXPRESS;Initial Catalog=MasterPolPartners;Integrated Security=True;Encrypt=False";\r\n public Form1()\r\n {\r\n InitializeComponent();\r\n LoadPartners();\r\n ApplyStyles();\r\n }\r\n\r\n private void ApplyStyles()\r\n {\r\n this.BackColor = Color.White;\r\n panel1.BackColor = Color.FromArgb(244, 232, 211); // #F4E8D3\r\n btnAdd.BackColor = btnEdit.BackColor = btnHistory.BackColor = Color.FromArgb(103, 186, 128); // #67BA80\r\n btnAdd.ForeColor = btnEdit.ForeColor = btnHistory.ForeColor = Color.White;\r\n\r\n // Настройка шрифта\r\n foreach (Control control in this.Controls)\r\n {\r\n control.Font = new Font("Segoe UI", 9);\r\n }\r\n }\r\n\r\n private void LoadPartners()\r\n {\r\n try\r\n {\r\n using (SqlConnection connection = new SqlConnection(connectionString))\r\n {\r\n string query = "SELECT PartnerId, PartnerType, CompanyName, DirectorName, Phone, Rating, TotalSales FROM Partners WHERE PartnerId = 3";\r\n SqlDataAdapter adapter = new SqlDataAdapter(query, connection);\r\n DataTable table = new DataTable();\r\n adapter.Fill(table);\r\n\r\n flowLayoutPanel1.Controls.Clear();\r\n\r\n foreach (DataRow row in table.Rows)\r\n {\r\n PartnerCard card = new PartnerCard(row);\r\n card.Tag = row["PartnerId"]; // Сохраняем ID для редактирования\r\n card.Click += PartnerCard_Click;\r\n flowLayoutPanel1.Controls.Add(card);\r\n }\r\n }\r\n }\r\n catch (Exception ex)\r\n {\r\n MessageBox.Show($"Ошибка при загрузке партнеров: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n }\r\n }\r\n\r\n private void PartnerCard_Click(object sender, EventArgs e)\r\n {\r\n int partnerId = (int)((Control)sender).Tag;\r\n EditPartner(partnerId);\r\n }\r\n\r\n private void btnAdd_Click(object sender, EventArgs e)\r\n {\r\n EditPartner(0); // 0 означает нового партнера\r\n }\r\n\r\n private void EditPartner(int partnerId)\r\n {\r\n PartnerForm form = new PartnerForm(partnerId, connectionString);\r\n if (form.ShowDialog() == DialogResult.OK)\r\n {\r\n LoadPartners(); // Обновляем список после изменений\r\n }\r\n }\r\n\r\n private void btnHistory_Click(object sender, EventArgs e)\r\n {\r\n if (flowLayoutPanel1.Controls.Count > 0 && flowLayoutPanel1.Controls[0] is PartnerCard)\r\n {\r\n int partnerId = (int)flowLayoutPanel1.Controls[0].Tag;\r\n HistoryForm form = new HistoryForm(partnerId, connectionString);\r\n form.ShowDialog();\r\n }\r\n else\r\n {\r\n MessageBox.Show("Выберите партнера для просмотра истории", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);\r\n }\r\n }\r\n }\r\n\r\n public class PartnerCard : Panel\r\n {\r\n public PartnerCard(DataRow row)\r\n {\r\n this.Width = 300;\r\n this.Height = 150;\r\n this.BackColor = Color.White;\r\n this.BorderStyle = BorderStyle.FixedSingle;\r\n this.Padding = new Padding(10);\r\n this.Margin = new Padding(10);\r\n this.Cursor = Cursors.Hand;\r\n\r\n // Тип и название компании\r\n Label lblTypeName = new Label();\r\n lblTypeName.Text = $"{row["PartnerType"]} | {row["CompanyName"]}";\r\n lblTypeName.Font = new Font("Segoe UI", 10, FontStyle.Bold);\r\n lblTypeName.Top = 10;\r\n lblTypeName.Left = 10;\r\n lblTypeName.AutoSize = true;\r\n this.Controls.Add(lblTypeName);\r\n\r\n // Директор\r\n Label lblDirector = new Label();\r\n lblDirector.Text = row["DirectorName"].ToString();\r\n lblDirector.Top = 40;\r\n lblDirector.Left = 10;\r\n lblDirector.AutoSize = true;\r\n this.Controls.Add(lblDirector);\r\n\r\n // Телефон\r\n Label lblPhone = new Label();\r\n lblPhone.Text = row["Phone"].ToString();\r\n lblPhone.Top = 70;\r\n lblPhone.Left = 10;\r\n lblPhone.AutoSize = true;\r\n this.Controls.Add(lblPhone);\r\n\r\n // Рейтинг\r\n Label lblRating = new Label();\r\n lblRating.Text = $"Рейтинг: {row["Rating"]}";\r\n lblRating.Top = 100;\r\n lblRating.Left = 10;\r\n lblRating.AutoSize = true;\r\n this.Controls.Add(lblRating);\r\n\r\n // Скидка\r\n decimal totalSales = Convert.ToDecimal(row["TotalSales"]);\r\n int discount = CalculateDiscount(totalSales);\r\n Label lblDiscount = new Label();\r\n lblDiscount.Text = $"Скидка: {discount}%";\r\n lblDiscount.Top = 100;\r\n lblDiscount.Left = 150;\r\n lblDiscount.AutoSize = true;\r\n this.Controls.Add(lblDiscount);\r\n }\r\n\r\n private int CalculateDiscount(decimal totalSales)\r\n {\r\n if (totalSales < 10000) return 0;\r\n if (totalSales < 50000) return 5;\r\n if (totalSales < 300000) return 10;\r\n return 15;\r\n }\r\n }\r\n}"; File.WriteAllText(filePath, fileContent); } catch (Exception ex) { throw new Exception($"Ошибка при создании файла: {ex.Message}"); } }
public static void MakeWreeTwo(string filePath = "testfile2.txt")
{
try
{
string fileContent = "using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Data.SqlClient;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace WindowsFormsApp3\r\n{\r\n public partial class PartnerForm : Form\r\n {\r\n private int partnerId;\r\n private string connectionString;\r\n\r\n public PartnerForm(int partnerId, string connectionString)\r\n {\r\n InitializeComponent();\r\n this.partnerId = partnerId;\r\n this.connectionString = connectionString;\r\n this.Text = partnerId == 0 ? \"Добавление партнера\" : \"Редактирование партнера\";\r\n LoadPartnerData();\r\n ApplyStyles();\r\n }\r\n\r\n private void ApplyStyles()\r\n {\r\n this.BackColor = Color.White;\r\n btnSave.BackColor = btnCancel.BackColor = Color.FromArgb(103, 186, 128); // #67BA80\r\n btnSave.ForeColor = btnCancel.ForeColor = Color.White;\r\n }\r\n\r\n private void LoadPartnerData()\r\n {\r\n if (partnerId == 0) return; // Новый партнер\r\n\r\n try\r\n {\r\n using (SqlConnection connection = new SqlConnection(connectionString))\r\n {\r\n string query = \"SELECT * FROM Partners WHERE PartnerId = @PartnerId\";\r\n SqlCommand command = new SqlCommand(query, connection);\r\n command.Parameters.AddWithValue(\"@PartnerId\", partnerId);\r\n\r\n connection.Open();\r\n SqlDataReader reader = command.ExecuteReader();\r\n\r\n if (reader.Read())\r\n {\r\n txtCompanyName.Text = reader[\"CompanyName\"].ToString();\r\n cmbPartnerType.Text = reader[\"PartnerType\"].ToString();\r\n txtDirector.Text = reader[\"DirectorName\"].ToString();\r\n txtAddress.Text = reader[\"Address\"].ToString();\r\n txtPhone.Text = reader[\"Phone\"].ToString();\r\n txtEmail.Text = reader[\"Email\"].ToString();\r\n numRating.Value = Convert.ToInt32(reader[\"Rating\"]);\r\n }\r\n }\r\n }\r\n catch (Exception ex)\r\n {\r\n MessageBox.Show($\"Ошибка при загрузке данных партнера: {ex.Message}\", \"Ошибка\", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n }\r\n }\r\n\r\n private void btnSave_Click(object sender, EventArgs e)\r\n {\r\n if (ValidateInput())\r\n {\r\n SavePartner();\r\n this.DialogResult = DialogResult.OK;\r\n this.Close();\r\n }\r\n }\r\n\r\n private bool ValidateInput()\r\n {\r\n if (string.IsNullOrWhiteSpace(txtCompanyName.Text))\r\n {\r\n MessageBox.Show(\"Введите наименование компании\", \"Ошибка\", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n return false;\r\n }\r\n\r\n if (string.IsNullOrWhiteSpace(cmbPartnerType.Text))\r\n {\r\n MessageBox.Show(\"Выберите тип партнера\", \"Ошибка\", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private void SavePartner()\r\n {\r\n try\r\n {\r\n using (SqlConnection connection = new SqlConnection(connectionString))\r\n {\r\n string query;\r\n if (partnerId == 0)\r\n {\r\n query = @\"INSERT INTO Partners \r\n (PartnerType, CompanyName, DirectorName, Address, Phone, Email, Rating)\r\n VALUES (@PartnerType, @CompanyName, @DirectorName, @Address, @Phone, @Email, @Rating)\";\r\n }\r\n else\r\n {\r\n query = @\"UPDATE Partners SET \r\n PartnerType = @PartnerType,\r\n CompanyName = @CompanyName,\r\n DirectorName = @DirectorName,\r\n Address = @Address,\r\n Phone = @Phone,\r\n Email = @Email,\r\n Rating = @Rating\r\n WHERE PartnerId = @PartnerId\";\r\n }\r\n\r\n SqlCommand command = new SqlCommand(query, connection);\r\n command.Parameters.AddWithValue(\"@PartnerType\", cmbPartnerType.Text);\r\n command.Parameters.AddWithValue(\"@CompanyName\", txtCompanyName.Text);\r\n command.Parameters.AddWithValue(\"@DirectorName\", txtDirector.Text);\r\n command.Parameters.AddWithValue(\"@Address\", txtAddress.Text);\r\n command.Parameters.AddWithValue(\"@Phone\", txtPhone.Text);\r\n command.Parameters.AddWithValue(\"@Email\", txtEmail.Text);\r\n command.Parameters.AddWithValue(\"@Rating\", numRating.Value);\r\n\r\n if (partnerId != 0)\r\n {\r\n command.Parameters.AddWithValue(\"@PartnerId\", partnerId);\r\n }\r\n\r\n connection.Open();\r\n command.ExecuteNonQuery();\r\n }\r\n }\r\n catch (Exception ex)\r\n {\r\n MessageBox.Show($\"Ошибка при сохранении партнера: {ex.Message}\", \"Ошибка\", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n }\r\n }\r\n\r\n private void btnCancel_Click(object sender, EventArgs e)\r\n {\r\n this.DialogResult = DialogResult.Cancel;\r\n this.Close();\r\n }\r\n }\r\n}";
File.WriteAllText(filePath, fileContent);
}
catch (Exception ex)
{
throw new Exception($"Ошибка при создании файла: {ex.Message}");
}
}
public static void MakeWreeThree(string filePath = "testfile3.txt")
{
try
{
string fileContent = "using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Data.SqlClient;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace WindowsFormsApp3\r\n{\r\n public partial class HistoryForm : Form\r\n {\r\n private int partnerId;\r\n private string connectionString;\r\n\r\n public HistoryForm(int partnerId, string connectionString)\r\n {\r\n InitializeComponent();\r\n this.partnerId = partnerId;\r\n this.connectionString = connectionString;\r\n this.Text = \"История реализации продукции\";\r\n LoadHistory();\r\n ApplyStyles();\r\n }\r\n\r\n private void ApplyStyles()\r\n {\r\n this.BackColor = Color.White;\r\n dataGridView1.BackgroundColor = Color.FromArgb(244, 232, 211); // #F4E8D3\r\n }\r\n\r\n private void LoadHistory()\r\n {\r\n try\r\n {\r\n using (SqlConnection connection = new SqlConnection(connectionString))\r\n {\r\n string query = @\"SELECT p.CompanyName, sh.ProductName, sh.Quantity, sh.SaleDate \r\n FROM SalesHistory sh\r\n JOIN Partners p ON sh.PartnerId = p.PartnerId\r\n WHERE sh.PartnerId = @PartnerId\r\n ORDER BY sh.SaleDate DESC\";\r\n\r\n SqlDataAdapter adapter = new SqlDataAdapter(query, connection);\r\n adapter.SelectCommand.Parameters.AddWithValue(\"@PartnerId\", partnerId);\r\n\r\n DataTable table = new DataTable();\r\n adapter.Fill(table);\r\n\r\n dataGridView1.DataSource = table;\r\n\r\n // Настройка заголовков\r\n dataGridView1.Columns[\"CompanyName\"].HeaderText = \"Партнер\";\r\n dataGridView1.Columns[\"ProductName\"].HeaderText = \"Продукция\";\r\n dataGridView1.Columns[\"Quantity\"].HeaderText = \"Количество\";\r\n dataGridView1.Columns[\"SaleDate\"].HeaderText = \"Дата продажи\";\r\n }\r\n }\r\n catch (Exception ex)\r\n {\r\n MessageBox.Show($\"Ошибка при загрузке истории продаж: {ex.Message}\", \"Ошибка\", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n }\r\n }\r\n }\r\n}";
File.WriteAllText(filePath, fileContent);
}
catch (Exception ex)
{
throw new Exception($"Ошибка при создании файла: {ex.Message}");
}
}
public static void MakeWreeFour(string filePath = "testfile4.txt")
{
try
{
string fileContent = "using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace WindowsFormsApp3\r\n{\r\n public static class MaterialCalculator\r\n {\r\n /// <summary>\r\n /// Рассчитывает количество материала, необходимого для производства\r\n /// </summary>\r\n /// <param name=\"productTypeId\">ID типа продукции</param>\r\n /// <param name=\"materialTypeId\">ID типа материала</param>\r\n /// <param name=\"productCount\">Количество продукции для производства</param>\r\n /// <param name=\"productParam1\">Первый параметр продукции (длина)</param>\r\n /// <param name=\"productParam2\">Второй параметр продукции (ширина)</param>\r\n /// <param name=\"productTypeCoeff\">Коэффициент типа продукции</param>\r\n /// <param name=\"materialDefectPercent\">Процент брака материала</param>\r\n /// <returns>Количество материала или -1 при ошибке</returns>\r\n public static int CalculateMaterialRequired(\r\n int productTypeId,\r\n int materialTypeId,\r\n int productCount,\r\n double productParam1,\r\n double productParam2,\r\n double productTypeCoeff,\r\n double materialDefectPercent)\r\n {\r\n // Проверка валидности входных данных\r\n if (productTypeId <= 0 || materialTypeId <= 0 || productCount <= 0 ||\r\n productParam1 <= 0 || productParam2 <= 0 ||\r\n productTypeCoeff <= 0 || materialDefectPercent < 0)\r\n {\r\n return -1;\r\n }\r\n\r\n try\r\n {\r\n // Расчет материала на одну единицу продукции\r\n double materialPerUnit = productParam1 * productParam2 * productTypeCoeff;\r\n\r\n // Общее количество материала без учета брака\r\n double totalMaterial = materialPerUnit * productCount;\r\n\r\n // Учет брака материала (увеличиваем количество на процент брака)\r\n double materialWithDefect = totalMaterial * (1 + materialDefectPercent / 100.0);\r\n\r\n // Округление в большую сторону до целого числа\r\n return (int)Math.Ceiling(materialWithDefect);\r\n }\r\n catch\r\n {\r\n return -1;\r\n }\r\n }\r\n }\r\n}";
File.WriteAllText(filePath, fileContent);
}
catch (Exception ex)
{
throw new Exception($"Ошибка при создании файла: {ex.Message}");
}
}
public static void MakeWreeFive(string filePath = "testfile5.txt")
{
try
{
string fileContent = "using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace WindowsFormsApp3\r\n{\r\n internal static class Program\r\n {\r\n /// <summary>\r\n /// Главная точка входа для приложения.\r\n /// </summary>\r\n [STAThread]\r\n static void Main()\r\n {\r\n Application.EnableVisualStyles();\r\n Application.SetCompatibleTextRenderingDefault(false);\r\n Application.Run(new Form1());\r\n }\r\n }\r\n}\r\n";
File.WriteAllText(filePath, fileContent);
}
catch (Exception ex)
{
throw new Exception($"Ошибка при создании файла: {ex.Message}");
}
}
public static void MakeWreeSix(string filePath = "testfile6.txt")
{
try
{
string fileContent = "CREATE DATABASE MasterPolPartners;\r\nGO\r\n\r\nUSE MasterPolPartners;\r\nGO\r\n\r\nCREATE TABLE Partners (\r\n PartnerId INT PRIMARY KEY IDENTITY(1,1),\r\n PartnerType NVARCHAR(50) NOT NULL,\r\n CompanyName NVARCHAR(100) NOT NULL,\r\n DirectorName NVARCHAR(100) NOT NULL,\r\n Address NVARCHAR(200) NOT NULL,\r\n Phone NVARCHAR(20) NOT NULL,\r\n Email NVARCHAR(100) NOT NULL,\r\n Rating INT NOT NULL DEFAULT 0,\r\n TotalSales DECIMAL(18,2) NOT NULL DEFAULT 0\r\n);\r\n\r\nCREATE TABLE SalesHistory (\r\n SaleId INT PRIMARY KEY IDENTITY(1,1),\r\n PartnerId INT NOT NULL,\r\n ProductName NVARCHAR(100) NOT NULL,\r\n Quantity INT NOT NULL,\r\n SaleDate DATETIME NOT NULL DEFAULT GETDATE(),\r\n FOREIGN KEY (PartnerId) REFERENCES Partners(PartnerId)\r\n);\r\nGO\r\n\r\nINSERT INTO Partners (PartnerType, CompanyName, DirectorName, Address, Phone, Email, Rating, TotalSales)\r\nVALUES \r\n('Оптовый', 'ООО \"СтройМаркет\"', 'Иванов Иван Иванович', 'г. Москва, ул. Строителей, 1', '+79991234567', 'stroy@mail.ru', 8, 125000),\r\n('Розничный', 'ИП Петров П.П.', 'Петров Петр Петрович', 'г. Москва, ул. Торговая, 15', '+79997654321', 'petrov@mail.ru', 6, 45000),\r\n('Интернет', 'ООО \"ПолОнлайн\"', 'Сидорова Анна Владимировна', 'г. Санкт-Петербург, Невский пр., 100', '+78121234567', 'polonline@mail.ru', 9, 320000);\r\nGO\r\n\r\nINSERT INTO SalesHistory (PartnerId, ProductName, Quantity, SaleDate)\r\nVALUES \r\n(1, 'Ламинат \"Дуб\"', 500, '20230115'),\r\n(1, 'Паркетная доска \"Ясень\"', 300, '20230220'),\r\n(2, 'Линолеум \"Премиум\"', 150, '20230310'),\r\n(3, 'Ламинат \"Дуб\"', 1000, '20230105'),\r\n(3, 'Паркетная доска \"Ясень\"', 800, '20230215'),\r\n(3, 'Линолеум \"Премиум\"', 600, '20230325');\r\nGO";
File.WriteAllText(filePath, fileContent);
}
catch (Exception ex)
{
throw new Exception($"Ошибка при создании файла: {ex.Message}");
}
}
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 210 | 6/17/2025 |