PDA

View Full Version : Không thể load dữ liệu vào combo box



Sess_Kakashi
21-05-2011, 10:43
Mình thiết kế 1 form như trong hình
http://upnhanh.sieuthinhanh.com/tmpimages/images/sieuthiNHANH2011052114020ogrmm2yyzj61891.jpeg

khi chạy thì kô báo lỗi nhưng chỉ có combo Tuyến & combo Loại xe là load lên, còn biển số thì lại không thể load lên được.
Đây là code của form đó

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace VeXe
{
public partial class XepLichKhoiHanh : Form
{
public XepLichKhoiHanh()
{
InitializeComponent();
}

private void XeDangKy_Load(object sender, EventArgs e)
{
HienThiLich();

bus_LoaiXe bus_lx = new bus_LoaiXe();
DataTable tbl1 = bus_lx.GetAll();
cbLoaiXe.DataSource = tbl1;
cbLoaiXe.DisplayMember = "TenLoai";
cbLoaiXe.ValueMember = "MaLoai";

bus_LichKhoiHanh bus_xdk=new bus_LichKhoiHanh();
DataTable tbl2 = bus_xdk.LayTuyen();
cbTuyen.DataSource = tbl2;
cbTuyen.DisplayMember = "TenTuyen";
cbTuyen.ValueMember = "MaTuyen";
}

private void cbLoaiXe_SelectedIndexChanged(object sender, EventArgs e)
{
bus_LichKhoiHanh bus_xdk = new bus_LichKhoiHanh();
string st_MaLoai = cbLoaiXe.SelectedValue.ToString();

DateTime dt_NgayDi = dtNgayDi.Value.Date;
DataTable tbl = new DataTable();
tbl = bus_xdk.LayBienSo(st_MaLoai,dt_NgayDi);

cbBienSo.DataSource = tbl;
cbBienSo.DisplayMember = "BienSoXe";
cbBienSo.ValueMember = "BienSoXe";

DataTable tbl3 = bus_xdk.LayLaiXe(dt_NgayDi);
cbLaiXe.DataSource = tbl3;
cbLaiXe.DisplayMember = "TenNV";
cbLaiXe.ValueMember = "MaNV";

DataTable tbl4 = bus_xdk.LayTiepVien(dt_NgayDi);
cbTiepVien.DataSource = tbl4;
cbTiepVien.DisplayMember = "TenNV";
cbTiepVien.ValueMember = "MaNV";

}

private void cbBienSo_SelectedIndexChanged(object sender, EventArgs e)
{
bus_LichKhoiHanh bus_xdk = new bus_LichKhoiHanh();
string st_BienSoXe = cbBienSo.SelectedValue.ToString();

DataTable tbl = new DataTable();
tbl = bus_xdk.LaySoCho(st_BienSoXe);

txtSoCho.Text = tbl.Rows[0]["SoChoNgoi"].ToString();
}

private void btnLuu_Click(object sender, EventArgs e)
{
string st_MaTuyen=cbTuyen.SelectedValue.ToString();
DateTime dt_NgayDi = dtNgayDi.Value.Date;
if (DateTime.Compare(dt_NgayDi, DateTime.Today) < 1)
{
MessageBox.Show("Ngày Đi phải sau ít nhất 1 ngày so với hiện tại.");
return;
}
string st_BienSoXe = cbBienSo.SelectedValue.ToString();
int in_SoLuongVe = int.Parse(txtSoCho.Text);
string st_GioDi = txtGioDi.Text.Trim();
int in_GiaVe = int.Parse(txtGiaVe.Text);

string st_MaLaiXe = cbLaiXe.SelectedValue.ToString();
string st_MaTiepVien = cbTiepVien.SelectedValue.ToString();
int Check = 0;

bus_LichKhoiHanh bus_xdk = new bus_LichKhoiHanh();
Check = bus_xdk.Insert(st_GioDi,dt_NgayDi,in_GiaVe,in_SoLu ongVe,in_SoLuongVe,st_BienSoXe,st_MaTuyen,st_MaLai Xe,st_MaTiepVien);

if (Check < 1)
{
MessageBox.Show("Lưu thất bại.");
return;
}
MessageBox.Show("Thành Công.");
HienThiLich();
}

void HienThiLich()
{
bus_LichKhoiHanh bus_xdk = new bus_LichKhoiHanh();
DataTable tbl = new DataTable();

tbl = bus_xdk.HienThiLich();
dgvHienThiLich.Rows.Clear();

for (int i = 0; i < tbl.Rows.Count; i++)
{
dgvHienThiLich.Rows.Add();
dgvHienThiLich["cllTuyen",i].Value=tbl.Rows[i]["TenTuyen"];
dgvHienThiLich["cllBienSo", i].Value = tbl.Rows[i]["BienSoXe"];
dgvHienThiLich["cllNgayDi", i].Value = tbl.Rows[i]["NgayDi"];
dgvHienThiLich["cllGioDi", i].Value = tbl.Rows[i]["GioDi"];
dgvHienThiLich["cllLoaiXe", i].Value = tbl.Rows[i]["TenLoai"];
dgvHienThiLich["cllSoCho", i].Value = tbl.Rows[i]["SoChoNgoi"];
dgvHienThiLich["cllGiaVe",i].Value=tbl.Rows[i]["GiaVe"];
dgvHienThiLich["cllLaiXe", i].Value = tbl.Rows[i]["LaiXe"];
dgvHienThiLich["cllTiepVien", i].Value = tbl.Rows[i]["TiepVien"];
dgvHienThiLich["cllMaDangKy", i].Value = tbl.Rows[i]["MaDangKy"];
}
tbl.Dispose();
}

private void dgvHienThiLich_RowEnter(object sender, DataGridViewCellEventArgs e)
{
int row_Index = e.RowIndex;
txtMa.Text = dgvHienThiLich.Rows[row_Index].Cells["cllMaDangKy"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllMaDangKy"].Value.ToString();
cbTuyen.Text = dgvHienThiLich.Rows[row_Index].Cells["cllTuyen"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllTuyen"].Value.ToString();
dtNgayDi.Text = dgvHienThiLich.Rows[row_Index].Cells["cllNgayDi"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllNgayDi"].Value.ToString();
cbLoaiXe.Text = dgvHienThiLich.Rows[row_Index].Cells["cllLoaiXe"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllLoaiXe"].Value.ToString();
cbBienSo.Text = dgvHienThiLich.Rows[row_Index].Cells["cllBienSo"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllBienSo"].Value.ToString();
txtSoCho.Text = dgvHienThiLich.Rows[row_Index].Cells["cllSoCho"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllSoCho"].Value.ToString();
txtGioDi.Text = dgvHienThiLich.Rows[row_Index].Cells["cllGioDi"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllGioDi"].Value.ToString();
txtGiaVe.Text = dgvHienThiLich.Rows[row_Index].Cells["cllGiaVe"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllGiaVe"].Value.ToString();
cbLaiXe.Text = dgvHienThiLich.Rows[row_Index].Cells["cllLaiXe"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllLaiXe"].Value.ToString();
cbTiepVien.Text = dgvHienThiLich.Rows[row_Index].Cells["cllTiepVien"].Value == null ? "" : dgvHienThiLich.Rows[row_Index].Cells["cllTiepVien"].Value.ToString();
if (txtMa.Text != "")
{
btnLuu.Enabled = false;
}
else
{
txtGiaVe.Text = "0";
}
}

private void btnThayDoi_Click(object sender, EventArgs e)
{
string st_MaTuyen = cbTuyen.SelectedValue.ToString();
DateTime dt_NgayDi = dtNgayDi.Value.Date;
if (DateTime.Compare(dt_NgayDi, DateTime.Today) < 1)
{
MessageBox.Show("Ngày Đi phải sau ít nhất 1 ngày so với hiện tại.");
return;
}
string st_BienSoXe = cbBienSo.Text.Trim();
int in_SoLuongVe = int.Parse(txtSoCho.Text);
string st_GioDi = txtGioDi.Text.Trim();
int in_GiaVe = int.Parse(txtGiaVe.Text);

string st_MaLaiXe = cbLaiXe.SelectedValue.ToString();
string st_MaTiepVien = cbTiepVien.SelectedValue.ToString();
int in_MaDangKy = int.Parse(txtMa.Text);
int Check = 0;

bus_LichKhoiHanh bus_xdk = new bus_LichKhoiHanh();
Check = bus_xdk.Update(in_MaDangKy, st_GioDi, dt_NgayDi, in_GiaVe, in_SoLuongVe, in_SoLuongVe, st_BienSoXe, st_MaTuyen, st_MaLaiXe, st_MaTiepVien);

if (Check < 1)
{
MessageBox.Show("Không thay đổi được.\nHãy chọn Xe có số chổ lớn hơn.");
return;
}
MessageBox.Show("Thành Công.");
btnLuu.Enabled = true;
HienThiLich();
}

private void btnXoa_Click(object sender, EventArgs e)
{
bus_LichKhoiHanh bus_lkh = new bus_LichKhoiHanh();
if (txtMa.Text == "")
{
MessageBox.Show("Hãy chọn một giá trị muốn xóa bên dưới.");
return;
}
int in_MaDangKy = int.Parse(txtMa.Text);
int Check= 0;
Check = bus_lkh.Delete(in_MaDangKy);
if (Check < 1)
{
MessageBox.Show("Không thể hủy chuyến này được.\nVì nó đã có khách hàng rồi.");
return;
}
else
{
MessageBox.Show("Đã Xóa thành công.");
}
HienThiLich();
}

private void dtNgayDi_Leave(object sender, EventArgs e)
{
DateTime dt_NgayDi = dtNgayDi.Value.Date;
if (dt_NgayDi <= DateTime.Today)
{
MessageBox.Show("Lịch khởi hành gần nhất có thể là ngày mai.\nHãy lên lịch khởi hành vào ngày khác hôm nay. ");
cbLoaiXe.Enabled = false;
return;
}
else
{
cbLoaiXe.Enabled = true;
}
}

private void btnReset_Click(object sender, EventArgs e)
{
btnLuu.Enabled = true;
cbBienSo.Text = "";
dtNgayDi.Value = DateTime.Today;
cbLoaiXe.Text = "";
cbTuyen.Text = "";
cbTiepVien.Text = "";
cbLaiXe.Text = "";
txtGiaVe.Text = "";
txtGioDi.Text = "";
txtMa.Text = "";
txtSoCho.Text = "";
}
}
}

code của lớp bus_LichKhoiHanh


using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace VeXe
{
class bus_LichKhoiHanh
{
public DataTable LayTuyen()
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.LayTuyen();
}
catch
{
throw;
}
}

public DataTable LayBienSo(string st_MaLoai,DateTime dt_NgayDi)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.LayBienSo(st_MaLoai,dt_NgayDi);
}
catch
{
throw;
}
}

public DataTable LaySoCho(string st_BienSoXe)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.LaySoCho(st_BienSoXe);
}
catch
{
throw;
}
}

public DataTable LayLaiXe(DateTime dt_NgayDi)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();

try
{
return data_xdk.LayLaiXe(dt_NgayDi);
}
catch
{
throw;
}
}

public DataTable LayTiepVien(DateTime dt_NgayDi)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();

try
{
return data_xdk.LayTiepVien(dt_NgayDi);
}
catch
{
throw;
}
}

public int Insert(string st_GioDi, DateTime dt_NgayDi, int in_GiaVe, int in_SoLuongVe, int in_VeConLai, string st_BienSoXe, string st_MaTuyen, string st_MaLaiXe, string st_MaTiepVien)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.Insert(st_GioDi, dt_NgayDi, in_GiaVe, in_SoLuongVe, in_VeConLai, st_BienSoXe, st_MaTuyen, st_MaLaiXe, st_MaTiepVien);
}
catch
{
throw;
}
}

public int Update(int in_MaDangKy, string st_GioDi, DateTime dt_NgayDi, int in_GiaVe, int in_SoLuongVe, int in_VeConLai, string st_BienSoXe, string st_MaTuyen, string st_MaLaiXe, string st_MaTiepVien)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.Update(in_MaDangKy, st_GioDi, dt_NgayDi, in_GiaVe, in_SoLuongVe, in_VeConLai, st_BienSoXe, st_MaTuyen, st_MaLaiXe, st_MaTiepVien);
}
catch
{
throw;
}
}

public int Delete(int in_MaDangKy)
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.Delete(in_MaDangKy);
}
catch
{
return 0;
}
}

public DataTable HienThiLich()
{
data_LichKhoiHanh data_xdk = new data_LichKhoiHanh();
try
{
return data_xdk.HienThiLich();
}
catch
{
throw;
}
}
}
}


code của data_LichKhoiHanh



using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace VeXe
{
class data_LichKhoiHanh
{
string st_conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

public DataTable LayTuyen()
{
DataTable tbl = new DataTable();
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("Tuyen_GetAll", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
try
{
adapt.Fill(tbl);
}
catch
{
throw;
}
finally
{
adapt.Dispose();
tbl.Dispose();
cmd.Dispose();
conn.Close();
}
return tbl;
}

public DataTable LayBienSo(string st_MaLoai,DateTime dt_NgayDi)
{
DataTable tbl = new DataTable();
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_LayBienSo", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@MaLoai",st_MaLoai);
cmd.Parameters.AddWithValue("@NgayDi", dt_NgayDi);
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
try
{
adapt.Fill(tbl);
}
catch
{
throw;
}
finally
{
adapt.Dispose();
tbl.Dispose();
cmd.Dispose();
conn.Close();
}
return tbl;
}

public DataTable LaySoCho(string st_BienSoXe)
{
DataTable tbl = new DataTable();
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_LaySoCho", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@BienSoXe", st_BienSoXe);
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
try
{
adapt.Fill(tbl);
}
catch
{
throw;
}
finally
{
adapt.Dispose();
tbl.Dispose();
cmd.Dispose();
conn.Close();
}
return tbl;
}

public DataTable LayLaiXe(DateTime dt_NgayDi)
{
DataTable tbl = new DataTable();
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_LayLaiXe", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@NgayDi",dt_NgayDi);
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
try
{
adapt.Fill(tbl);
}
catch
{
throw;
}
finally
{
adapt.Dispose();
tbl.Dispose();
cmd.Dispose();
conn.Close();
}
return tbl;
}

public DataTable LayTiepVien(DateTime dt_NgayDi)
{
DataTable tbl = new DataTable();
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_LayTiepVien", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@NgayDi", dt_NgayDi);
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
try
{
adapt.Fill(tbl);
}
catch
{
throw;
}
finally
{
adapt.Dispose();
tbl.Dispose();
cmd.Dispose();
conn.Close();
}
return tbl;
}

public int Insert(string st_GioDi, DateTime dt_NgayDi, int in_GiaVe, int in_SoLuongVe, int in_VeConLai, string st_BienSoXe, string st_MaTuyen, string st_MaLaiXe, string st_MaTiepVien)
{
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_Insert", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@GioDi", st_GioDi);
cmd.Parameters.AddWithValue("@NgayDi", dt_NgayDi);
cmd.Parameters.AddWithValue("@GiaVe", in_GiaVe);
cmd.Parameters.AddWithValue("@SoLuongVe", in_SoLuongVe);
cmd.Parameters.AddWithValue("@VeConLai", in_VeConLai);
cmd.Parameters.AddWithValue("@BienSoXe", st_BienSoXe);
cmd.Parameters.AddWithValue("@MaTuyen", st_MaTuyen);
cmd.Parameters.AddWithValue("@MaLaiXe", st_MaLaiXe);
cmd.Parameters.AddWithValue("@MaTiepVien", st_MaTiepVien);

return cmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
cmd.Dispose();
conn.Close();
}
}

public int Update(int in_MaDangKy, string st_GioDi, DateTime dt_NgayDi, int in_GiaVe, int in_SoLuongVe, int in_VeConLai, string st_BienSoXe, string st_MaTuyen, string st_MaLaiXe, string st_MaTiepVien)
{
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_Update", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@MaDangKy", in_MaDangKy);
cmd.Parameters.AddWithValue("@GioDi", st_GioDi);
cmd.Parameters.AddWithValue("@NgayDi", dt_NgayDi);
cmd.Parameters.AddWithValue("@GiaVe", in_GiaVe);
cmd.Parameters.AddWithValue("@SoLuongVe", in_SoLuongVe);
cmd.Parameters.AddWithValue("@VeConLai", in_VeConLai);
cmd.Parameters.AddWithValue("@BienSoXe", st_BienSoXe);
cmd.Parameters.AddWithValue("@MaTuyen", st_MaTuyen);
cmd.Parameters.AddWithValue("@MaLaiXe", st_MaLaiXe);
cmd.Parameters.AddWithValue("@MaTiepVien", st_MaTiepVien);

return cmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
cmd.Dispose();
conn.Close();
}
}
public DataTable HienThiLich()
{
DataTable tbl = new DataTable();
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_Info",conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
try
{
adapt.Fill(tbl);
}
catch
{
throw;
}
finally
{
adapt.Dispose();
tbl.Dispose();
cmd.Dispose();
conn.Close();
}
return tbl;
}

public int Delete(int in_MaDangKy)
{
SqlConnection conn = new SqlConnection(st_conn);
conn.Open();

SqlCommand cmd = new SqlCommand("XepLichKhoiHanh_Delete", conn);
cmd.CommandType = CommandType.StoredProcedure;

try
{
cmd.Parameters.AddWithValue("@MaDangKy", in_MaDangKy);
return cmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
cmd.Dispose();
conn.Close();
}
}
}
}


Bạn nào biết sai chỗ nào thì chỉ dùm mình.
Thanks

hungtn91
22-05-2011, 12:02
bạn post cả bài của bạn lên kèm theo csdl nữa thì mọi người mới biết mà sửa được chứ. ngồi nhìn code thế này thì ai tìm được lỗi.hix

hunginfo
22-05-2011, 15:47
hi bạn

Đọc code của bạn chóng mặt quá hehe

Bạn chỉ cần kiểm tra 2 chỗ
1. Datasource của combobox
2. DisplayMember / ValueMember

Bạn RUN form lên debugs là biết
Nếu Datasource có thì ok
Nếu Datasource có mà mà combobox ko display dc thì do (2), bạn chỉ cần xem trong source có field cần bind lên hay ko?

Một vài ý, hy vọng giúp dc bạn
Best regards@!@!@!@