Проект .NET Framework, в котором я подключаюсь к MySQL и добавляю элементы в таблицу, но почему я не могу нажать более оMySql

Форум по Mysql
Ответить
Anonymous
 Проект .NET Framework, в котором я подключаюсь к MySQL и добавляю элементы в таблицу, но почему я не могу нажать более о

Сообщение Anonymous »

В моем проекте всякий раз, когда я нажимаю любую из двух запрограммированных кнопок (кнопка «Добавить», чтобы добавить элементы, и кнопка «Обновить», чтобы просмотреть таблицу в 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, я не могу ничего нажать

Подробнее здесь: https://stackoverflow.com/questions/793 ... ble-but-wh
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»