private string Doi_Sang_Ten_Nhom(string chuoi) { string kq = ""; if (chuoi.Trim() != "," && chuoi.Trim() != "") { DataTable dt = Connect_Database.Doc_Bang("Select tennhom from tblNhom where manhom='" + chuoi + "'"); kq = dt.Rows[0]["tennhom"].ToString().Trim(); } return(kq); }
private void btnXoaDuLieu_Click(object sender, EventArgs e) { Connect_Database.Ghi_Bang("Delete from tblHoaDon"); Connect_Database.Ghi_Bang("Delete from tblSanPham"); Connect_Database.Ghi_Bang("Delete from tblCTHoaDon"); MetroFramework.MetroMessageBox.Show(this, "Đã xoá dữ liệu thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); DataTable dt = Connect_Database.Doc_Bang("select * from tblCTHoaDon"); //Đọc bảng tblCTHoaDon. DataTable dt1 = Connect_Database.Doc_Bang("select * from tblSanPham"); //Đọc bảng tblSanPham. dgvDanhSachHoaDon.DataSource = dt; dgvDanhMucSP.DataSource = dt1; }
private string Doi_Sang_Masp(DataTable dt, string chuoi) { string kq = ""; for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["tam"].ToString().Trim() == chuoi.Trim()) { kq = dt.Rows[i]["masp"].ToString().Trim(); DataTable dtdata = Connect_Database.Doc_Bang("Select tensp from tblCTHoaDon where masp='" + kq + "'"); kq = dtdata.Rows[0]["tensp"].ToString(); i = dt.Rows.Count; } } return(kq); }
private void btnLoadDulieu_Click(object sender, EventArgs e) { DataTable dt = Connect_Database.Doc_Bang("select * from tblCTHoaDon"); //Đọc bảng tblCTHoaDon. dgvLoadDSHoaDon.DataSource = dt; lblTongDuLieu.Text = "" + dt.Rows.Count; // Đặt tên cột. dgvLoadDSHoaDon.Columns[0].HeaderText = "Mã hoá đơn"; dgvLoadDSHoaDon.Columns[1].HeaderText = "Tên sản phẩm"; dgvLoadDSHoaDon.Columns[2].HeaderText = "Mã sản phẩm"; dgvLoadDSHoaDon.Columns[3].HeaderText = "Số lượng"; dgvLoadDSHoaDon.Columns[4].HeaderText = "Ngày lập hoá đơn"; DataTable dt1 = Connect_Database.Doc_Bang("Select masp, tensp, manhom from tblSanPham"); //Đọc bảng tblSanPham. dgvLoadDanhMucSP.DataSource = dt1; // Đặt tên cột. dgvLoadDanhMucSP.Columns[0].HeaderText = "Mã sản phẩm"; dgvLoadDanhMucSP.Columns[1].HeaderText = "Tên sản phẩm"; dgvLoadDanhMucSP.Columns[2].HeaderText = "Mã nhóm"; }
private void btnImportDuLieu_Click(object sender, EventArgs e) { //Lấy dữ liệu từ Grid. DataTable dt = (DataTable)dgvDanhSachHoaDon.DataSource; DataTable dt1 = (DataTable)dgvDanhMucSP.DataSource; if (dt == null && dt1 == null) { return; } string mahd = ""; string ngaylap = ""; string masp = ""; string tensp = ""; string soluong = ""; string nhom = ""; int dem = 0; for (int k = 0; k < dt1.Columns.Count; k = k + 2) //Duyệt qua từng cột của dữ liệu. { for (int i = 0; i < dt1.Rows.Count; i++) //Duyệt qua từng dòng của dữ liệu. { masp = dt1.Rows[i][k + 1].ToString().Trim(); tensp = dt1.Rows[i][k].ToString().Replace('\'', ' ').Trim(); if (masp != "" && tensp != "") { string[] anpha = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; nhom = anpha[dem]; //Lưu trữ dữ liệu sản phẩm vào Database. string lenh = "insert into tblSanPham(masp, tensp, Manhom) values('" + masp + "',N'" + tensp + "','" + nhom + "')"; Connect_Database.Ghi_Bang(lenh); if (i == dt1.Rows.Count - 1) { dem++; } } else if (masp == "" && tensp == "") { i = dt1.Rows.Count; dem++; } } } for (int i = 3; i < dt.Rows.Count; i++) { mahd = dt.Rows[i][0].ToString(); ngaylap = dt.Rows[i][4].ToString(); masp = dt.Rows[i][2].ToString(); tensp = dt.Rows[i][1].ToString().Replace('\'', ' '); soluong = dt.Rows[i][3].ToString(); string lenh = "insert into tblHoaDon(mahd, ngaylap) values('" + mahd + "','" + ngaylap + "')"; //lưu trữ dữ liệu hóa đơn vào Database DataTable dtkthd = Connect_Database.Doc_Bang("select * from tblHoaDon where mahd='" + mahd + "'"); if (dtkthd.Rows.Count < 1) { Connect_Database.Ghi_Bang(lenh); //Lưu trữ chi tiết hóa đơn vào database. } lenh = "insert into tblCTHoaDon(mahd, ngaylap, masp, tensp, soluong) values('" + mahd + "','" + ngaylap + "','" + masp + "',N'" + tensp + "','" + soluong + "')"; Connect_Database.Ghi_Bang(lenh); } MetroFramework.MetroMessageBox.Show(this, "Đã lưu dữ liệu thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); dt = Connect_Database.Doc_Bang("select * from tblCTHoaDon"); //Đọc bảng tblCTHoaDon. dgvDanhSachHoaDon.DataSource = dt; dt1 = Connect_Database.Doc_Bang("select * from tblSanPham"); //Đọc bảng tblSanPham. dgvDanhMucSP.DataSource = dt1; }
private DataTable Luat_Ket_Hop_Tung_Mat_Hang_Luu_Chart(float minsup, float minconf, string chuoi) { //mlvDanhSachMH.Items.Clear(); chuoi = chuoi.Trim(); //Tách từng nhóm. string where = "'" + chuoi[0].ToString(); for (int i = 1; i < chuoi.Length; i++) { if (chuoi[i] != ' ' && chuoi[i] != '-') { where = where + "','" + chuoi[i].ToString(); } } where = where + "'"; string lenh = "Select Distinct tblCTHoaDon.mahd from tblSanPham, tblCTHoaDon where tblCTHoaDon.masp = tblSanPham.masp and tblSanPham.manhom in(" + where + ")"; DataTable dtHD = Connect_Database.Doc_Bang(lenh); lenh = "Select Distinct tblSanPham.masp from tblSanPham,tblCTHoaDon where tblCTHoaDon.masp=tblSanPham.masp and tblSanPham.manhom in(" + where + ")"; DataTable dtMasp = Connect_Database.Doc_Bang(lenh); dtMasp.Columns.Add("tam", typeof(string)); string[] anpha = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; for (int i = 0; i < dtMasp.Rows.Count; i++) { dtMasp.Rows[i]["tam"] = anpha[i]; } //Xử lý kết nối các Transaction. List <string> trans = new List <string>(); for (int i = 0; i < dtHD.Rows.Count; i++) { string mahd = dtHD.Rows[i]["mahd"].ToString().Trim(); DataTable dthd = Connect_Database.Doc_Bang("select tblCTHoaDon.mahd, tblCTHoaDon.masp from tblCTHoaDon, tblSanPham where tblSanPham.masp = tblCTHoaDon.masp and tblCTHoaDon.mahd = '" + mahd + "'"); string str = ""; for (int j = 0; j < dthd.Rows.Count; j++) { for (int k = 0; k < dtMasp.Rows.Count; k++) { if (dtMasp.Rows[k]["masp"].ToString().Trim() == dthd.Rows[j]["masp"].ToString().Trim()) { if (!str.Contains(dtMasp.Rows[k]["tam"].ToString().Trim())) { str = str + dtMasp.Rows[k]["tam"].ToString().Trim(); k = dtMasp.Rows.Count; } } } } trans.Add(str); } //xứ lý thuật toán Apriori ItemsetCollection db = new ItemsetCollection(); for (int i = 0; i < trans.Count(); i++) { string aa = trans.ElementAt(i).Trim(); //string[] mang =new string[aa.Length]; Itemset itemtraining = new Itemset(); for (int j = 0; j < aa.Length; j++) { itemtraining.Add(aa[j].ToString()); } // mang[j] = aa[j].ToString(); db.Add(itemtraining); } Itemset uniqueItems = db.GetUniqueItems(); ItemsetCollection L = AprioriMining.DoApriori(db, minsup); //mlvDanhSachMH.View = View.Details; //mlvDanhSachMH.GridLines = true; //mlvDanhSachMH.FullRowSelect = true; DataTable dtkq = new DataTable(); dtkq.Columns.Add("Luat", typeof(string)); dtkq.Columns.Add("Confidence", typeof(string)); ////Thêm tiêu đề cho cột. //mlvDanhSachMH.Columns.Add("Tập luật kết hợp", 450); //mlvDanhSachMH.Columns.Add("Min_conf", 70); //test mining List <AssociationRule> allRules = AprioriMining.Mine(db, L, minconf); Console.Write("\n" + allRules.Count + " rules\n"); foreach (AssociationRule rule in allRules) { string s = rule.ToString(); string[] a = s.Split(':'); if (a[2] != "" && float.Parse(a[1]) >= minsup && float.Parse(a[2]) >= minconf) { string ss = "{"; a[0] = a[0].Replace('{', ' '); a[0] = a[0].Replace('}', ' '); a[0] = a[0].Trim(); string[] aaa = a[0].Split('-'); string sss1 = Doi_Sang_Masp(dtMasp, aaa[0]); string sss2 = Doi_Sang_Masp(dtMasp, aaa[1]); if (sss1.Trim() != "" && sss2.Trim() != "") { ss = sss1 + " => " + sss2; DataRow dr = dtkq.NewRow(); dr[0] = ss; dr[1] = float.Parse(a[2]); dtkq.Rows.Add(dr); //ListViewItem lstItem1 = new ListViewItem(); //lstItem1.SubItems[0].Text = ss; //lstItem1.SubItems.Add(a[2] + "%"); //mlvDanhSachMH.Items.Add(lstItem1); } } //Console.Write(rule + "\n"); } return(dtkq); }
private void btnApriori_Click(object sender, EventArgs e) { mlvTapPhoBien.Clear(); mlvTapLuatKH.Clear(); mlvDanhSachMH.Clear(); mang_luu = new List <string>(); if ((DataTable)dgvLoadDSHoaDon.DataSource == null) { MetroFramework.MetroMessageBox.Show(this, "Vui lòng import dữ liệu."); } else { DataTable dt = ((DataTable)dgvLoadDSHoaDon.DataSource).Clone(); dt.Columns.Add("tam", typeof(string)); float minsup = 0; float minconf = 0; if (txtMinSupp.Text.Trim() == "") { MetroFramework.MetroMessageBox.Show(this, "Vui lòng nhập độ phổ biến."); return; } minsup = (float)(float.Parse(txtMinSupp.Text) / 100.0); if (txtMinConf.Text.Trim() == "") { MetroFramework.MetroMessageBox.Show(this, "Vui lòng nhập độ hổ trợ."); return; } minconf = (float)(float.Parse(txtMinConf.Text) / 100.0); if (float.Parse(txtMinSupp.Text) > float.Parse(txtMinConf.Text)) { MetroFramework.MetroMessageBox.Show(this, "Không có luật kết hợp thỏa điều kiện.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); lblTongTLKH.Text = "0"; lblTongTPB.Text = "0"; return; } //Bắt đầu thuật toán Apriori. List <string> item = new List <string>(); DataTable dtdata = Connect_Database.Doc_Bang("Select Distinct manhom From tblSanPham"); for (int i = 0; i < dtdata.Rows.Count; i++) { item.Add(dtdata.Rows[i]["manhom"].ToString().Trim()); } //xử lý kết nối các Transaction List <string> trans = new List <string>(); DataTable dtnguon = Connect_Database.Doc_Bang("select Distinct mahd from tblCTHoaDon"); for (int i = 0; i < dtnguon.Rows.Count; i++) { string mahd = dtnguon.Rows[i]["mahd"].ToString().Trim(); DataTable dthd = Connect_Database.Doc_Bang("select tblCTHoaDon.mahd, tblCTHoaDon.masp, tblSanPham.manhom from tblCTHoaDon, tblSanPham where tblSanPham.masp=tblCTHoaDon.masp and tblCTHoaDon.mahd='" + mahd + "'"); string str = ""; for (int j = 0; j < dthd.Rows.Count; j++) { if (!str.Contains(dthd.Rows[j]["manhom"].ToString().Trim())) //kiêm tra nhóm { str = str + dthd.Rows[j]["manhom"].ToString().Trim(); } } trans.Add(str); } //xứ lý thuật toán Aprirori ItemsetCollection db = new ItemsetCollection(); for (int i = 0; i < trans.Count(); i++) { string aa = trans.ElementAt(i).Trim(); //string[] mang =new string[aa.Length]; Itemset itemtraining = new Itemset(); for (int j = 0; j < aa.Length; j++) { itemtraining.Add(aa[j].ToString()); } // mang[j] = aa[j].ToString(); db.Add(itemtraining); } mlvTapPhoBien.View = View.Details; mlvTapPhoBien.GridLines = true; mlvTapPhoBien.FullRowSelect = true; //Thêm tiêu đề cho cột. mlvTapPhoBien.Columns.Add("Tập phổ biến", 205); mlvTapPhoBien.Columns.Add("Min_supp", 90); Itemset uniqueItems = db.GetUniqueItems(); ItemsetCollection L = AprioriMining.DoApriori(db, minsup); Console.Write("\n" + L.Count + " itemsets in L\n"); foreach (Itemset i in L) { string s = i.ToLuat(); string[] a = s.Split(':'); if (a[1].Trim() != "" && float.Parse(a[1]) >= minsup * 100) { ListViewItem lstItem1 = new ListViewItem(); string ss = Xu_ly_chuoi(a[0].Trim()); lstItem1.SubItems[0].Text = ss; lstItem1.SubItems.Add(a[1] + "%"); mlvTapPhoBien.Items.Add(lstItem1); } //Đếm tổng số tập phổ biến trong danh mục sản phẩm. lblTongTPB.Text = "" + mlvTapPhoBien.Items.Count; } mlvTapLuatKH.View = View.Details; mlvTapLuatKH.GridLines = true; mlvTapLuatKH.FullRowSelect = true; //Thêm tiêu đề cho cột mlvTapLuatKH.Columns.Add("Tập luật kết hợp", 300); mlvTapLuatKH.Columns.Add("Min_conf", 70); //test mining List <AssociationRule> allRules = AprioriMining.Mine(db, L, minconf); Console.Write("\n" + allRules.Count + " rules\n"); bool kq_kt = false; foreach (AssociationRule rule in allRules) { string s = rule.ToString(); string[] a = s.Split(':'); if (a[2] != "" && float.Parse(a[1]) >= minsup * 100 && float.Parse(a[2]) >= minconf * 100) { string ss = "{"; a[0] = a[0].Replace('{', ' '); a[0] = a[0].Replace('}', ' '); a[0] = a[0].Trim(); string[] aaa = a[0].Split('-'); string sss1 = Xu_ly_chuoi(aaa[0]); string sss2 = Xu_ly_chuoi(aaa[1]); ss = sss1 + " => " + sss2; mang_luu.Add(a[0]); ListViewItem lstItem1 = new ListViewItem(); lstItem1.SubItems[0].Text = ss; lstItem1.SubItems.Add(a[2] + "%"); mlvTapLuatKH.Items.Add(lstItem1); //Đếm tổng số luật kết hợp trong danh mục sản phẩm. lblTongTLKH.Text = "" + mlvTapLuatKH.Items.Count; kq_kt = true; } //Console.Write(rule + "\n"); } if (!kq_kt) { MetroFramework.MetroMessageBox.Show(this, "Không có luật kết hợp thỏa điều kiện.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }