Загрузка данных
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<connectionStrings>
<add
name="DefaultCon"
connectionString="Data Source=localhost\SQLExpress;Initial Catalog=Exam;Integrated Security=True;TrustServerCertificate=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
namespace WindowsFormsApp1
{
internal static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
public static string conStr = ConfigurationManager.ConnectionStrings["DefaultCon"].ConnectionString;
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void LoadDataToGrid(string query, SqlParameter[] parameters = null, string tableName = "Results")
{
try
{
using (SqlConnection con = new SqlConnection(Program.conStr))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(query, con))
{
if (parameters != null)
cmd.Parameters.AddRange(parameters);
using (SqlDataReader reader = cmd.ExecuteReader())
{
DataTable table = new DataTable(tableName);
table.Load(reader);
table_gv.DataSource = table;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка: {ex.Message}\n\nЗапрос:\n{query}");
}
}
private void button1_Click(object sender, EventArgs e)
{
string query = @"
SELECT dbo.Лекарства.Наименование, dbo.Поставки.Количество - dbo.Продажи.Количество AS Остаток FROM dbo.Лекарства INNER JOIN
dbo.Поставки ON dbo.Лекарства.[Номер лекарства] = dbo.Поставки.[Номер лекарства] INNER JOIN
dbo.Продажи ON dbo.Лекарства.[Номер лекарства] = dbo.Продажи.[Номер лекарства] GROUP BY dbo.Лекарства.Наименование, dbo.Поставки.Количество - dbo.Продажи.Количество";
LoadDataToGrid(query);
}
private void button2_Click(object sender, EventArgs e)
{
string query = @"
SELECT dbo.Поставщики.Название AS [Наименование поставщика], dbo.Лекарства.Наименование AS [Наименование лекарства] FROM dbo.Лекарства INNER JOIN
dbo.Поставки ON dbo.Лекарства.[Номер лекарства] = dbo.Поставки.[Номер лекарства] INNER JOIN
dbo.Поставщики ON dbo.Поставки.[Номер поставщика] = dbo.Поставщики.[Номер поставщика] WHERE (dbo.Поставщики.Название = @SupplierName)";
SqlParameter param = new SqlParameter("@SupplierName", SqlDbType.NVarChar)
{
Value = textBox1.Text.Trim()
};
LoadDataToGrid(query, new[] { param });
}
private void button3_Click(object sender, EventArgs e)
{
string query = @"SELECT TOP (3) dbo.Лекарства.Наименование, dbo.Продажи.Количество FROM dbo.Лекарства INNER JOIN dbo.Продажи ON dbo.Лекарства.[Номер лекарства] = dbo.Продажи.[Номер лекарства] ORDER BY dbo.Продажи.Количество DESC";
LoadDataToGrid(query);
}
}
}