В моем проекте всякий раз, когда я нажимаю любую из двух запрограммированных кнопок (кнопка «Добавить», чтобы добавить элементы, и кнопка «Обновить», чтобы просмотреть таблицу в DataGridView), Visual Studio 2022 внезапно увеличивает использование памяти с 20 МБ до 27 МБ и сколько бы я ни пробовал, другая кнопка перестает работать, что делать?
вот мой код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using MySQL.Data.EntityFrameworkCore;
namespace stok
{
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
}
private Category category;
public Form1()
{
InitializeComponent();
category = new Category();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
category.CategoryId = Convert.ToInt32(textBox2.Text);
category.CategoryName = textBox1.Text;
category.UpdateCategory();
MessageBox.Show("Category updated successfully!");
ListCategories();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
ListCategories();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "Kategoriler")
{
try
{
if (string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("Please fill in the Category Name.");
return;
}
category.CategoryName = textBox1.Text;
category.CategoryId = Convert.ToInt32(textBox2.Text);
category.AddCategory();
MessageBox.Show("Category added successfully!");
ListCategories();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text == "Kategoriler")
{
try
{
if (string.IsNullOrEmpty(textBox2.Text))
{
MessageBox.Show("Please fill in the Category ID.");
return;
}
category.CategoryName =(textBox1.Text);
category.DeleteCategory();
MessageBox.Show("row deleted successfully!");
ListCategories();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
}
private void button4_Click_1(object sender, EventArgs e)
{
ListCategories();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
// Optionally implement cell click handling logic
}
private void ListCategories()
{
try
{
DataTable dataTable = category.ListCategories();
dataGridView1.DataSource = dataTable;
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
internal class VeriTabaniBaglanti
{
string baglancumle = ConfigurationManager.ConnectionStrings["StokBaglantiCumlesi"].ConnectionString;
public MySqlConnection baglan()
{
MySqlConnection baglanti = new MySqlConnection(baglancumle);
MySqlConnection.ClearPool(baglanti);
return baglanti;
}
}
public class Category
{
public int CategoryId { get; set; }
public string CategoryName { get; set; }
private readonly VeriTabaniBaglanti databaseConnection;
private readonly MySqlConnection connection;
private readonly MySqlCommand command;
public Category()
{
databaseConnection = new VeriTabaniBaglanti();
connection = databaseConnection.baglan();
command = new MySqlCommand { Connection = connection };
}
public DataTable ListCategories()
{
DataTable dataTable = new DataTable();
try
{
using (connection)
{
connection.Open();
command.CommandText = "SELECT * FROM kategoriler";
MySqlDataAdapter adapter = new MySqlDataAdapter(command);
DataTable kisilistesi = new DataTable();
adapter.Fill(kisilistesi);
return kisilistesi;
connection.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
return dataTable;
}
public void AddCategory()
{
try
{
using (connection)
{
connection.Open();
command.CommandText = "INSERT INTO kategoriler (kategori_adi) VALUES (@CategoryName)";
command.Parameters.Clear();
command.Parameters.AddWithValue("@CategoryName", CategoryName);
command.ExecuteNonQuery();
connection.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
public void UpdateCategory()
{
try
{
using (connection)
{
connection.Open();
command.CommandText = "UPDATE kategoriler SET kategori_adi = @CategoryName WHERE kategori_id = @CategoryId";
command.Parameters.Clear();
command.Parameters.AddWithValue("@CategoryName", CategoryName);
command.Parameters.AddWithValue("@CategoryId", CategoryId);
command.ExecuteNonQuery();
connection.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
public void DeleteCategory()
{
try
{
if (connection.State != ConnectionState.Open)
{
{
connection.Open();
command.CommandText = "DELETE FROM kategoriler WHERE kategori_id = @CategoryId";
command.Parameters.Clear();
command.Parameters.AddWithValue("@CategoryId", CategoryId);
command.ExecuteNonQuery();
connection.Close();
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
public class Tedarikci
{
public int Id { get; set; }
public string FirmaAdi { get; set; }
public string YetkiliAdSoyad { get; set; }
public string Telefon { get; set; }
public string Mail { get; set; }
public string Adres { get; set; }
private readonly VeriTabaniBaglanti databaseConnection;
public Tedarikci()
{
databaseConnection = new VeriTabaniBaglanti();
}
public void Ekle()
{
using (var connection = databaseConnection.baglan())
{
try
{
connection.Open();
using (var command = new MySqlCommand("INSERT INTO tedarikciler (firma_adi, yetkili_adsoyad, telefon, mail, adres) VALUES (@FirmaAdi, @YetkiliAdSoyad, @Telefon, @Mail, @Adres)", connection))
{
command.Parameters.AddWithValue("@FirmaAdi", FirmaAdi);
command.Parameters.AddWithValue("@YetkiliAdSoyad", YetkiliAdSoyad);
command.Parameters.AddWithValue("@Telefon", Telefon);
command.Parameters.AddWithValue("@Mail", Mail);
command.Parameters.AddWithValue("@Adres", Adres);
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Console.WriteLine("Hata: " + ex.Message);
throw;
}
}
}
public void Guncelle()
{
using (var connection = databaseConnection.baglan())
{
try
{
connection.Open();
using (var command = new MySqlCommand("UPDATE tedarikciler SET firma_adi = @FirmaAdi, yetkili_adsoyad = @YetkiliAdSoyad, telefon = @Telefon, mail = @Mail, adres = @Adres WHERE id = @Id", connection))
{
command.Parameters.AddWithValue("@FirmaAdi", FirmaAdi);
command.Parameters.AddWithValue("@YetkiliAdSoyad", YetkiliAdSoyad);
command.Parameters.AddWithValue("@Telefon", Telefon);
command.Parameters.AddWithValue("@Mail", Mail);
command.Parameters.AddWithValue("@Adres", Adres);
command.Parameters.AddWithValue("@Id", Id);
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Console.WriteLine("Hata: " + ex.Message);
throw;
}
}
}
public void Sil()
{
using (var connection = databaseConnection.baglan())
{
try
{
connection.Open();
using (var command = new MySqlCommand("DELETE FROM tedarikciler WHERE id = @Id", connection))
{
command.Parameters.AddWithValue("@Id", Id);
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Console.WriteLine("Hata: " + ex.Message);
throw;
}
}
}
public DataTable Listele()
{
using (var connection = databaseConnection.baglan())
{
try
{
connection.Open();
using (var command = new MySqlCommand("SELECT * FROM tedarikciler", connection))
{
using (var adapter = new MySqlDataAdapter(command))
{
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
return dataTable;
}
}
}
catch (Exception ex)
{
Console.WriteLine("Hata: " + ex.Message);
throw;
}
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Я подумал, что, возможно, причина в том, что я использую две кнопки, а затем попробовал выполнить обе функции в одной кнопке, но это не сработало. Я попробовал изменить сборку с «Любой процессор» на x64 (моя ОС — x64). Я также пытался закрыть все на своем компьютере, чтобы освободить Visual Studio больше места в памяти и процессоре, но это тоже ничего не дало. Что бы я ни делал, когда процесс памяти превышает 25, я не могу ничего нажать
В моем проекте всякий раз, когда я нажимаю любую из двух запрограммированных кнопок (кнопка «Добавить», чтобы добавить элементы, и кнопка «Обновить», чтобы просмотреть таблицу в DataGridView), Visual Studio 2022 внезапно увеличивает использование памяти с 20 МБ до 27 МБ и сколько бы я ни пробовал, другая кнопка перестает работать, что делать? вот мой код: [code]using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient; using MySQL.Data.EntityFrameworkCore;
namespace stok {
public partial class Form1 : Form { private void Form1_Load(object sender, EventArgs e) {
} private Category category;
public Form1() { InitializeComponent(); category = new Category(); }
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "Kategoriler") { try { if (string.IsNullOrEmpty(textBox1.Text)) { MessageBox.Show("Please fill in the Category Name."); return; }
private void button3_Click(object sender, EventArgs e) { if (textBox1.Text == "Kategoriler") { try { if (string.IsNullOrEmpty(textBox2.Text)) { MessageBox.Show("Please fill in the Category ID."); return; }
public void DeleteCategory() { try { if (connection.State != ConnectionState.Open) { { connection.Open(); command.CommandText = "DELETE FROM kategoriler WHERE kategori_id = @CategoryId"; command.Parameters.Clear(); command.Parameters.AddWithValue("@CategoryId", CategoryId); command.ExecuteNonQuery(); connection.Close(); } } } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } }
} public class Tedarikci { public int Id { get; set; } public string FirmaAdi { get; set; } public string YetkiliAdSoyad { get; set; } public string Telefon { get; set; } public string Mail { get; set; } public string Adres { get; set; }
[/code] Я подумал, что, возможно, причина в том, что я использую две кнопки, а затем попробовал выполнить обе функции в одной кнопке, но это не сработало. Я попробовал изменить сборку с «Любой процессор» на x64 (моя ОС — x64). Я также пытался закрыть все на своем компьютере, чтобы освободить Visual Studio больше места в памяти и процессоре, но это тоже ничего не дало. Что бы я ни делал, когда процесс памяти превышает 25, я не могу ничего нажать