私はここに来たばかりで、私が作成しているプログラムについて多くの質問がありますが、私を最も悩ませているのはタイトルのものです。
基本的に、私はこれを使って埋めるコンボボックスを持っています:
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter("SELECT cveestado, nomestado FROM tbEstado", conexion);
da.Fill(ds, "FillDropDown");
cbEstado.DisplayMember = "Nomestado";
cbEstado.ValueMember = "CveEstado";
cbEstado.DataSource = ds.Tables["FillDropDown"];
conexion.Close();
ユーザーが選択したものに基づいて、最初の選択に基づいて別のコンボボックスを埋めたいと思います。
これまでのところ私はこれを持っていますが、うまくいきません:
private void cbEstado_TextChanged(object sender, EventArgs e)
{
if (cbEstado.SelectedValue.ToString() == "Tabasco")
{
try
{
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter("SELECT cvemunicipio, nommunicipio FROM tbMunicipio where cveestado = 27", conexion);
da.Fill(ds, "FillDropDown");
cbMunicipio.DisplayMember = "Nommunicipio";
cbMunicipio.ValueMember = "Cvemunicipio";
cbMunicipio.DataSource = ds.Tables["FillDropDown"];
conexion.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
基本的に、ユーザーが「タバスコ」を選択した場合、2 番目のコンボボックスにタバスコの市町村を入力します。
念のため、私のSQLコードは次のとおりです。
create table tbEstado
(cveEstado int not null,
nomEstado varchar(45) not null,
constraint pkcveEstado primary key (cveEstado)
)engine=innodb;
create table tbMunicipio
(cveMunicipio int not null,
nomMunicipio varchar(45) not null,
cveEstado int not null,
constraint pkcveMunicipio primary key (cveMunicipio),
constraint fkcveEstado foreign key (cveEstado) references tbEstado(cveEstado)
)engine=innodb;
ありがとう!
編集
https://stackoverflow.com/users/1197518/steveのおかげで、答えは次のとおりです。
private void cbEstado_TextChanged(object sender, EventArgs e)
{
if (cbEstado.SelectedValue != null && Convert.ToInt32(cbEstado.SelectedValue) == 27)
{
try
{
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter("SELECT cvemunicipio, nommunicipio FROM tbMunicipio where cveestado = 27", conexion);
da.Fill(ds, "FillDropDown");
cbMunicipio.DisplayMember = "Nommunicipio";
cbMunicipio.ValueMember = "Cvemunicipio";
cbMunicipio.DataSource = ds.Tables["FillDropDown"];
conexion.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}