- Tìm kiếm theo Quận;
- TÌm kiếm theo tên đường;
- Tìm kiếm theo mức độ hư hỏng của đường;
- Tìm kiếm theo cách thức tổ chức giao thông;
Hình 3.14. Chức năng Tìm kiếm //Load Data
private void LoadData() {
cbQuan.Checked = true;
cbDuong.Checked = true;
cbMucDoHuHong.Checked = true;
cbToChucGiaoThong.Checked = true;
đườngToolStripMenuItem.Enabled = false;
ngườiDùngToolStripMenuItem.Enabled = false;
đăngXuấtToolStripMenuItem.Enabled = false;
đăngNhậpToolStripMenuItem.Enabled = true;
var dataContext = new QLDuongDataContext();
cmbQuan.DataSource = dataContext.Quans.ToList();
cmbQuan.DisplayMember = "TenQuan";
cmbQuan.ValueMember = "MaQuan";
cmbMucDoHuHong.DataSource=dataContext.MucDoHuHongs.ToList();
cmbMucDoHuHong.DisplayMember = "TenMucDo";
cmbMucDoHuHong.ValueMember = "MaMucDoHuHong";
cmbToChucGiaoThong.DataSource=dataContext.ToChucGiaoThongs.ToLis t();
cmbToChucGiaoThong.DisplayMember = "TenToChucGiaoThong";
cmbToChucGiaoThong.ValueMember = "MaToChucGiaoThong";
} }
// SetStatusControl
private void SetStatusControl(object sender, Control control) {
var checkBox = sender as CheckBox;
if (checkBox == null) return;
control.Enabled = checkBox.Checked;
SetStatusTimKiem();
}
// SetStatusTimKiem
private void SetStatusTimKiem() {
btnTimKiem.Enabled = cbQuan.Checked || cbDuong.Checked ||
cbMucDoHuHong.Checked || cbToChucGiaoThong.Checked;
}
// Tìm kiếm
private void btnTimKiem_Click(object sender, EventArgs e) {
var quan = (string)cmbQuan.SelectedValue;
var duong = txtDuong.Text.ToUpper();
var mucDoHuHong = (int)cmbMucDoHuHong.SelectedValue;
var toChucGiaoThong = (int)cmbToChucGiaoThong.SelectedValue;
if (AppConstant.KindOfApp == 2) {
if (cbQuan.Checked) {
var selectedQuan = cmbQuan.SelectedItem as Quan;
if (selectedQuan != null) {
var dataContext = new QLDuongDataContext(selectedQuan.PathServer);
var ketqua = dataContext.Duongs
.Where(x => (!cbDuong.Checked || x.TenDuong.ToUpper().Contains(duong)) && (!cbMucDoHuHong.Checked || x.MaMucDoHuHong == mucDoHuHong)
&& (!cbToChucGiaoThong.Checked || x.MaToChucGiaoThong == toChucGiaoThong)) .ToList();
dgvKetQua.DataSource = ketqua;
} } else {
var duongs = new List<Duong>();
foreach (var item in cmbQuan.Items) {
var quanItem = item as Quan;
if (quanItem == null) {
continue;
}
var dataContext = new QLDuongDataContext(quanItem.PathServer);
var ketqua = dataContext.Duongs
.Where(x => (!cbDuong.Checked || x.TenDuong.ToUpper().Contains(duong)) && (!cbMucDoHuHong.Checked || x.MaMucDoHuHong == mucDoHuHong)
&& (!cbToChucGiaoThong.Checked || x.MaToChucGiaoThong ==
toChucGiaoThong));
duongs.AddRange(ketqua);
}
dgvKetQua.DataSource = duongs .ToList();
} } else {
var dataContext = new QLDuongDataContext();
var ketqua = dataContext.Duongs
.Where(x => (!cbQuan.Checked || x.MaQuan == quan) && (!cbDuong.Checked ||
x.TenDuong.ToUpper().Contains(duong)) && (!cbMucDoHuHong.Checked ||
x.MaMucDoHuHong == mucDoHuHong) && (!cbToChucGiaoThong.Checked ||
x.MaToChucGiaoThong == toChucGiaoThong)) .ToList();
dgvKetQua.DataSource = ketqua;
} }
// In (xuất ra file *.CSV)
private void btnIn_Click(object sender, EventArgs e) {
var ketQua = dgvKetQua.DataSource as List<Duong>;
if (ketQua != null) {
var duongInfos = ketQua.Select(x => new DuongInfo() {
MaDuong = x.MaDuong, TenDuong = x.TenDuong,
ChieuDai = x.ChieuDai == null ? 0 : x.ChieuDai.Value, MaLoaiMatDuong = x.MaLoaiMatDuong == null ? -1 :
x.MaLoaiMatDuong.Value,
MaKieuDuong = x.MaKieuDuong == null ? -1 :
x.MaKieuDuong.Value,
HeThongChieuSang = x.HeThongChieuSang != null &&
x.HeThongChieuSang.Value, MaLoaiGiaoCat = x.MaLoaiGiaoCat == null ? -1 :
x.MaLoaiGiaoCat.Value, GiaoVoiDuongSat = x.GiaoVoiDuongSat != null &&
x.GiaoVoiDuongSat.Value, HeThongTinHieu = x.HeThongTinHieu != null &&
x.HeThongTinHieu.Value,
MaToChucGiaoThong =x.MaToChucGiaoThong == null ? -1 : x.MaToChucGiaoThong.Value, MaMucDoHuHong = x.MaMucDoHuHong == null ? -1 :
x.MaMucDoHuHong.Value, MatDoLuuThong = x.MatDoLuuThong,
MaQuan = x.MaQuan, });
var openFileDialog1 = new SaveFileDialog {
Filter = "Text file|*.csv", Title = "Select a CSV File"
};
if (openFileDialog1.ShowDialog() == DialogResult.OK) {
CSVHelper<DuongInfo>.SaveToFile(duongInfos,
openFileDialog1.FileName, true); } }
}
3.4.2. Quản lý người dùng
Hình 3.15. Quản lý người dùng private void btnThem_Click(object sender, EventArgs e) {
var tenDangNhap = txtTenDangNhap.Text.Trim();
var matKhau = txtMatKhau.Text.Trim();
if (string.IsNullOrEmpty(tenDangNhap)) {
MessageBox.Show("Tên đăng nhập không được rỗng");
return;
}
if (string.IsNullOrEmpty(matKhau)) {
MessageBox.Show("Mật khẩu không được rỗng");
return;
}
var dataContext = new QLDuongDataContext();
if (dataContext.NguoiDungs.Any(x => x.TenDangNhap == tenDangNhap)) {MessageBox.Show("Tên đăng nhập này đã tồn tại");
return;
}
var nguoiDung = new NguoiDung() {
TenDangNhap = tenDangNhap, MatKhau = matKhau
};
dataContext.NguoiDungs.InsertOnSubmit(nguoiDung);
dataContext.SubmitChanges();
LoadDanhSachNguoiDung();
}
private void btnCapNhat_Click(object sender, EventArgs e) {
var tenDangNhap = txtTenDangNhap.Text.Trim();
var matKhau = txtMatKhau.Text;
if (string.IsNullOrEmpty(tenDangNhap)) {
MessageBox.Show("Tên đăng nhập không được rỗng ");
return;
}
if (string.IsNullOrEmpty(matKhau)) {
MessageBox.Show("Mật khẩu không được rỗng");
return;
}
var dataContext = new QLDuongDataContext();
var nguoiDung = dataContext.NguoiDungs.FirstOrDefault (x => x.TenDangNhap == tenDangNhap);
if (nguoiDung == null) {
MessageBox.Show("Tên đăng nhập này không tồn tại");
return;
}
nguoiDung.MatKhau = matKhau;
dataContext.SubmitChanges();
LoadDanhSachNguoiDung();
}
private void btnXoa_Click(object sender, EventArgs e) {
var tenDangNhap = txtTenDangNhap.Text.Trim();
if (string.IsNullOrEmpty(tenDangNhap)) {
MessageBox.Show("Tên đăng nhập không được rỗng");
return;
}
var dataContext = new QLDuongDataContext();
var nguoiDung = dataContext.NguoiDungs.FirstOrDefault (x => x.TenDangNhap == tenDangNhap);
if (nguoiDung == null) {
MessageBox.Show("Tên đăng nhập này không tồn tại");
return;
}
dataContext.NguoiDungs.DeleteOnSubmit(nguoiDung);
dataContext.SubmitChanges();
LoadDanhSachNguoiDung();
}
3.4.3. Quản lý dữ liệu đường
// Cập nhật
private void btnCapNhat_Click(object sender, EventArgs e) {
try {
var maDuong = txtMaDuong.Text.Trim();
if (string.IsNullOrEmpty(maDuong)) {
MessageBox.Show("Mã đường không được rỗng");
return;
}
var quan = cmbQuan.SelectedItem as Quan;
var dataContext = new
QLDuongDataContext(quan.PathServer);
if (!dataContext.Duongs.Any(x => x.MaDuong ==
maDuong)) {
MessageBox.Show("Mã đường không tồn tại");
return;
}
var tenDuong = txtTenDuong.Text.Trim();
if (string.IsNullOrEmpty(tenDuong)) {
MessageBox.Show("Tên đường không được rỗng");
return;
}
Hình 3.16. Quản lý đường double chieuDai;
if (!double.TryParse(txtChieuDai.Text, out chieuDai)) { MessageBox.Show("Chiều dài phải là số");
return;
}
if (chieuDai <= 0.0) {
MessageBox.Show("Chiều dài phải > 0");
return;
}
var matDoGiaoThong = txtMatDoGiaoThong.Text;
if (string.IsNullOrEmpty(matDoGiaoThong)) {
MessageBox.Show("Mật độ giao thông không được rỗng");
return;
}
var duong = dataContext.Duongs.FirstOrDefault (x => x.MaDuong == maDuong);
if (duong != null) {
duong.ChieuDai = chieuDai;
duong.GiaoVoiDuongSat = cbGiaoVoiDuongSat.Checked;
duong.HeThongChieuSang = cbHeThongChieuSang.Checked;
duong.HeThongTinHieu = cbHeThongTinHieu.Checked;
duong.MaKieuDuong = (int)cmbKieuDuong.SelectedValue;
duong.MaLoaiMatDuong = (int)cmbLoaiMatDuong.SelectedValue;
duong.MaQuan = (string)cmbQuan.SelectedValue;
duong.MaLoaiGiaoCat = (int)cmbLoaiGiaoCat.SelectedValue;
duong.MaToChucGiaoThong = (int)cmbToChucGiaoThong.SelectedValue;
duong.MaMucDoHuHong = (int)cmbMucDoHuHong.SelectedValue;
duong.MatDoLuuThong = matDoGiaoThong;
duong.TenDuong = tenDuong;
}
dataContext.SubmitChanges();
LoadDanhSachDuong();
}
catch (Exception) {
return;
} }
private void btnXoa_Click(object sender, EventArgs e) {
try {
var maDuong = txtMaDuong.Text.Trim();
if (string.IsNullOrEmpty(maDuong)) {
MessageBox.Show("Mã đường không được rỗng");
return;
}
var quan = cmbQuan.SelectedItem as Quan;
var dataContext = new QLDuongDataContext(quan.PathServer);
if (!dataContext.Duongs.Any(x => x.MaDuong == maDuong)) {
MessageBox.Show("Mã đường không tồn tại");
return;
}
var duong = dataContext.Duongs.FirstOrDefault(x => x.MaDuong == maDuong);
if (duong != null) {
dataContext.Duongs.DeleteOnSubmit(duong);
dataContext.SubmitChanges();
}
LoadDanhSachDuong();
}
catch (Exception) {
return;
} }