抱歉我的英语不好。我昨晚写了代码。我的程序运行成功,但fill_model的答案不正确。它应该是具有不同型号的现场,但它显示了与特定品牌相关的所有型号。你有什么主意吗? 这是代码:
private void brand_SelectedIndexChanged(object sender, EventArgs e)
{
fill_brand_txt();
fill_model();
model.Text = "";
}
private void fill_brand_txt()
{
string cs = "Data Source=192.168.1.20;Initial Catalog=Test;User ID=sa;Password=Abc123;";
string qu = "select id_kind from model where brand_name=@brand1";
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand(qu, con);
cmd.Parameters.AddWithValue("@brand1", brand.Text);
try
{
con.Open();
SqlDataReader rd = cmd.ExecuteReader();
rd.Read();
brand_txt.Text = rd["id_kind"].ToString();
}
catch (Exception ex)
{
MessageBox.Show("Error :", ex.Message);
}
finally
{
con.Close();
}
}
private void fill_model()
{
string cs = "Data Source=192.168.1.20;Initial Catalog=Test;User ID=sa;Password=Abc123;";
string que = "select model_name from model where id_kind=@id";
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand(que, con);
cmd.Parameters.AddWithValue("@id", brand_txt.Text);
con.Open();
System.Data.DataTable dt = new System.Data.DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
model.DisplayMember = "model_name";
model.DataSource = dt;
con.Close();
}
答案 0 :(得分:0)
如果您已将所有信息保存在单个表中,并且想要获取所有model_name,则可以使用此SQL命令:
SELECT model_name FROM model GROUP model_name;
答案 1 :(得分:0)
我不确定我是否理解。你有一个包含类似
之类的表{1, "printer"}
{2, "scanner"}
{3, "laptop"}
等等。然后你有一个模型表,你有类似
的东西{3, "HP", "Probook1"}
{3, "HP", "Probook2"}
{1, "Samsung", "mlxxx"}
{2, "HP", "whatever"}
等等。
您在字段中输入“HP”,您在fill_brand_txt()中从模型表中获得“3”(您只读取第一个值),并在fill_model()中基于此选择所有“laptop”。
我认为你混淆了一些东西。
如果您想要根据您输入的品牌列出所有型号,请省略fill_brand_txt并在fill_model中使用以下内容:
string que = "select model_name from model where brand=@brand";
{...}
cmd.Parameters.AddWithValue("@brand", brand.Text);