private void generateRfidMhs() { string NIM = txt_nik.Text.Replace("'", "''"); string prodi = string.Empty; DataTable dtProdi = null; cDatabase db = new cDatabase(); cQuery qr = new cQuery(); dtProdi = db.selectData(qr.qSelectKodeProdiByNim(NIM), '2'); if (dtProdi.Rows.Count != 0) { string cekRfid = string.Empty; foreach (DataRow rowProdi in dtProdi.Rows)//ambil kode prodi sesuai nim { cekRfid = rowProdi["RFID"].ToString(); prodi = rowProdi["prodi"].ToString(); } //jika ternyata sudah ada rfidnya, proses stop if (cekRfid != string.Empty) { clearTampilan(); tampilMhs(NIM); //txt_cari_nama.Text = string.Empty; //txt_cari_nik.Text = string.Empty; return; } //cek dari tabel mahasiswa DataTable lastHeksa = selectRfidMhsTerakirByProdi(prodi); //ambil heksa terakir dari mahasiswa, sesuai prodinya string heksa = string.Empty; if (lastHeksa.Rows.Count != 0) { foreach (DataRow rowHeksa in lastHeksa.Rows) { heksa = rowHeksa["heksa"].ToString(); } } //cek dari tabel history_rfid DataTable lastHeksaHis = selectFrHistoryRfidMhsTerakirbyProdi(prodi); //ambil heksa terakir dari history, sesuai prodinya string heksaHis = string.Empty; if (lastHeksaHis.Rows.Count != 0) { foreach (DataRow rowHeksaHis in lastHeksaHis.Rows) { heksaHis = rowHeksaHis["heksa"].ToString(); } } string heksaUse = string.Empty; //heksa yang akan dipakai if (heksa != string.Empty && heksaHis != string.Empty) //jika di kedua tabel ditemukan heksa sebelumnya { //bandingkan heksa dari tabel mhs dan history, nilainya paling tinggi yang dipakai Int32 iheksa = Int32.Parse(heksa, System.Globalization.NumberStyles.HexNumber); //dari heksa terakir convert ke int Int32 iheksaHis = Int32.Parse(heksaHis, System.Globalization.NumberStyles.HexNumber); //dari heksa terakir convert ke int if (iheksa > iheksaHis) { heksaUse = heksa; } else if (iheksaHis > iheksa) { heksaUse = heksaHis; } } else if (heksa != string.Empty && heksaHis == string.Empty) //jika hanya ditemukan dari tabel mahasiswa { heksaUse = heksa; } else if (heksa == string.Empty && heksaHis != string.Empty) //jika hanya ditemukan dari tabel history_rfid { heksaUse = heksaHis; } //======================================================================= if (heksaUse != string.Empty)//jika sudah ditemukan kode rfid terakir, lanjutkan sequence-nya { UpdateRfidMhs(NIM, prodi, heksaUse); } else { //jika belum ditemukan kode rfid sebelumnya, generate dari awal UpdateRfidMhs(NIM, prodi, "0000"); } lastHeksa.Clear(); lastHeksa.Dispose(); lastHeksaHis.Clear(); lastHeksaHis.Dispose(); } clearTampilan(); //txt_cari_nama.Text = string.Empty; //txt_cari_nik.Text = string.Empty; //DGList.Rows.Clear(); //jmlRow.Text = string.Empty; tampilMhs(NIM); }