Bagaimana cara menggunakan multi kotak kombo?

Saya menerapkan aplikasi windows di C#.Net. Saya punya tiga tabel: negara, negara bagian, Distrik. Semuanya terkait dengan kunci asing. Soalnya di form Distrik, kalau saya pilih salah satu negara (combobox), negara bagian yang bersangkutan tidak ditampilkan di combobox yang lain. Saya menggunakan acara selectedindexchange untuk tabel negara. Tapi itu terlihat

"String masukan tidak dalam format yang benar"

Saya akan memberikan kode di bawah ini. Jadi tolong bantu saya.

private void DistrictMaster_Load(object sender, EventArgs e)
{
    BEMaster objBEMaster = new BEMaster();
    BLMaster objBLMaster = new BLMaster();
    cboCountryName.DataSource = objBLMaster.GetCountry();
    cboCountryName.ValueMember = "CountryId";
    cboCountryName.DisplayMember = "CountryName";
}

private void cboCountryName_SelectedIndexChanged_1(object sender, EventArgs e)
{
    try
    {
        if (cboCountryName.SelectedValue.ToString() != "")
        {
            BEMaster objBEMaster = new BEMaster();
            objBEMaster.CountryId = Convert.ToInt32(cboCountryName.SelectedValue);
            BLMaster objBLMaster = new BLMaster();
            cboStateName.DataSource = objBLMaster.GetStateByCountryId(objBEMaster);
            cboStateName.DisplayMember = "StateName";
            cboStateName.ValueMember = "StateId";
        }
    }
    catch (Exception)
    {                
        throw;
    }                    
}

Apakah ada kesalahan di atas tolong beri saya balasan. Terima kasih.


person Community    schedule 09.01.2014    source sumber
comment
Di baris mana Anda mendapatkan kesalahan   -  person Vignesh Kumar A    schedule 09.01.2014
comment
Selamat datang di stackoverflow, silakan lihat meta.stackexchange.com/questions/19190/   -  person Arin Ghazarian    schedule 09.01.2014
comment
objBEMaster.CountryId = Konversi.ToInt32(cboCountryName.SelectedValue);   -  person user3176656    schedule 09.01.2014


Jawaban (1)


Sebagai saran, garis

if (cboCountryName.SelectedValue.ToString() != "")

bisa diganti di:

if(!String.IsNullOrEmpty(cboCountryName.SelectedValue.ToString())

Tentang masalah anda, dari uraian anda belum jelas dimana masalahnya, tapi menurut saya baris ini adalah masalah anda:

objBEMaster.CountryId = Convert.ToInt32(cboCountryName.SelectedValue);

Sebagai gantinya, gunakan Int32.TryParse metode, bukan untuk menangani pengecualian dan memeriksa apakah masalahnya adalah masalah konversi:

int myCountry;
bool result = Int32.TryParse(cboCountryName.SelectedValue, out myCountry);
if(result)
{
  BEMaster objBEMaster = new BEMaster();
  objBEMaster.CountryId = myCountry;
  BLMaster objBLMaster = new BLMaster();
  cboStateName.DataSource = objBLMaster.GetStateByCountryId(objBEMaster);
  cboStateName.DisplayMember = "StateName";
  cboStateName.ValueMember = "StateId";
}
person Community    schedule 09.01.2014