07/04/2021, 18:04

LỖI 'Fill: SelectCommand.Connection property has not been initialized.' TRONG VISUAL

Chào mn, em gặp lỗi 'Fill: SelectCommand.Connection property has not been initialized.' khi làm form quản lý hóa đơn trong Visual studio 2019 ạ Mong mn giúp đỡ

* Trong class

class Functions
    {


        public static SqlConnection Con;  //Khai báo đối tượng kết nối        

        public static void Connect()
        {
            Con = new SqlConnection();   //Khởi tạo đối tượng
            Con.ConnectionString = @"Data Source=DESKTOP-3NA990A\\SQLEXPRESS;Initial Catalog=QLNT;Integrated Security=True";
            
            Con.Open();                  //Mở kết nối
                                         //Kiểm tra kết nối
            if (Con.State == ConnectionState.Open)
                MessageBox.Show("Kết nối thành công");
            else MessageBox.Show("Không thể kết nối với dữ liệu");

        }
        public static void Disconnect()
        {
            if (Con.State == ConnectionState.Open)
            {
                Con.Close();    //Đóng kết nối
                Con.Dispose();  //Giải phóng tài nguyên
                Con = null;
            }
        }
        public static void FillCombo(string sql, ComboBox cbo, string ma, string ten)
        {
            SqlDataAdapter dap = new SqlDataAdapter(sql, Con);
            DataTable table = new DataTable();
            dap.Fill(table);
            cbo.DataSource = table;
            cbo.ValueMember = ma; //Trường giá trị
            cbo.DisplayMember = ten; //Trường hiển thị
        }

 

* Trong form hóa đơn:

namespace QLNT
{
    public partial class frmHDN : Form


    {
        DataTable tblCTHDB; //Bảng chi tiết hoá đơn bán
        public frmHDN()
        {
            InitializeComponent();
        }

        private void label8_Click(object sender, EventArgs e)
        {

        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void frmHDN_Load(object sender, EventArgs e)
        {
            btnTao.Enabled = true;
            btnLuu.Enabled = false;
            btnXoa.Enabled = false;
           
            txtMAHDBAN.ReadOnly = true;
            txtTENNV.ReadOnly = true;
            txtTENKH.ReadOnly = true;
            
            txtTENTHUOC.ReadOnly = true;
            txtDONGIA.ReadOnly = true;
            txtTHANHTIEN.ReadOnly = true;
            txtTONGTIEN.ReadOnly = true;
           
            txtTONGTIEN.Text = "0";
            Functions.FillCombo("SELECT MAKHACH, TENKHACH FROM DMKH$", cboMAKHACH, "MAKHACH", "MAKHACH");
            cboMAKHACH.SelectedIndex = -1;
            Functions.FillCombo("SELECT MANV, TENNV FROM TENNV$", cboMANV, "MaNhanVien", "TenKhach");
            cboMANV.SelectedIndex = -1;
            Functions.FillCombo("SELECT MaHang, TenHang FROM tblHang", cboMATHUOC, "MaHang", "MaHang");
            cboMATHUOC.SelectedIndex = -1;
            //Hiển thị thông tin của một hóa đơn được gọi từ form tìm kiếm
            
            LoadDataGridView();

        }
        private void LoadInfoHoaDon()
        {
            string str;
            str = "SELECT NGAY FROM HDBan$ WHERE MAHDBAN = N'" + txtMAHDBAN.Text + "'";
            txtNGAYBAN.Text = Functions.ConvertDateTime(Functions.GetFieldValues(str));
            str = "SELECT MaNhanVien FROM HDBan$ WHERE MaHDBan = N'" + txtMAHDBAN.Text + "'";
            cboMANV.Text = Functions.GetFieldValues(str);
            str = "SELECT MANV FROM HDBAN$ WHERE MAHDBAN = N'" + txtMAHDBAN.Text + "'";
            cboMAKHACH.Text = Functions.GetFieldValues(str);
            str = "SELECT TONGTIEN FROM HDBan$ WHERE MAHDBAN = N'" + txtMAHDBAN.Text + "'";
            txtTONGTIEN.Text = Functions.GetFieldValues(str);
            lblBANGCHU.Text = "Bằng chữ: " + Functions.ChuyenSoSangChu(txtTONGTIEN.Text);
        }
        private void LoadDataGridView()
        {
            string sql;
            sql = "SELECT a.MATHUOC, b.TENTHUOC, a.SOLUONG, b.DONGIA, a.THANHTIEN FROM  CTHDBan$ AS a,  AS b WHERE a.MAHDBAN = N'" + txtMAHDBAN.Text + "' AND a.MAHANG=b.MAHANG";
            tblCTHDB = Functions.GetDataToTable(sql);
            dgvHDBanHang.DataSource = tblCTHDB;
            dgvHDBanHang.Columns[0].HeaderText = "Mã hàng";
            dgvHDBanHang.Columns[1].HeaderText = "Tên hàng";
            dgvHDBanHang.Columns[2].HeaderText = "Số lượng";
            dgvHDBanHang.Columns[3].HeaderText = "Đơn giá";
            dgvHDBanHang.Columns[4].HeaderText = "Thành tiền";
            dgvHDBanHang.Columns[0].Width = 80;
            dgvHDBanHang.Columns[1].Width = 130;
            dgvHDBanHang.Columns[2].Width = 80;
            
            dgvHDBanHang.Columns[3].Width = 90;
            dgvHDBanHang.Columns[4].Width = 90;
            dgvHDBanHang.AllowUserToAddRows = false;
            dgvHDBanHang.EditMode = DataGridViewEditMode.EditProgrammatically;
            Functions.Connect();
        }

0