-Em muốn mỗi lần quét mã thẻ từ máy quét thì sẽ tự động so sánh MaThe có trong csdl và từ đó hiện thị các thông tin còn lại lên datagridview cứ như vậy sau mỗi lần mình quét
Đoạn code em đang thực hiện
Em sử dụng sự kiên
TextChanged
trong textbox để sử lý mã thẻ khi quét được, khi xử lý mã thẻ sau đó sẽ thực hiện truy vấn lấy các thông tin từ bảng TheBai sau đó cập nhật lên datagridview, hiện tại là e gặp vấn đề là chưa hiển thị lên được sau khi quét mã thẻ, nhờ mọi người chỉ ra cái sai và có cách nào làm tối ưu hơn hay có đường dẫn tham khảo cách làm càng tốt ạusing System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace CardScannerApp
{
public partial class MainForm : Form
{
private SqlConnection connection;
public FrmHT()
{
InitializeComponent();
string connectionString = "Data Source=DESKTOP-VAUF8MI\\SQLEXPRESS;Initial Catalog=TFEBC;User ID=sa;Password=tfe@123";
//sqlConnection = new SqlConnection(connectionString);
//sqlConnection.Open();
connection = new SqlConnection(connectionString);
connection.Open();
txtBarcodeDisplay.TextChanged += txtBarcodeDisplay_TextChanged;
//txtBarcodeDisplay.TextChanged += txtBarcodeDisplay_TextChanged;
//LoadSoHDComboBox();
}
private void displayCardinfo(string maThe)
{
string query = $"SELECT SoHD, MaHang, Size, Color FROM TheBai WHERE MaThe = @MaThe";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@MaThe", maThe);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
dataGridView1.DataSource = dataTable;
}
private void txtBarcodeDisplay_TextChanged(object sender, KeyEventArgs e)
{
string maTheQuet = txtBarcodeDisplay.Text.Trim();
displayCardinfo(maTheQuet);
}
}
}