以标签

时间:2015-12-04 08:20:49

标签: c# database combobox

我有一个这样的表格

MyForm

我有一个类Connect来连接数据库

class Connect
{
    SqlConnection con;
    public Connect()
    {
        String connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Database1.mdf;Integrated Security=True;User Instance=True";
        con = new SqlConnection(connectionString);
    }

    public DataTable executeSelect(String query)
    {
        con.Open();
        SqlDataAdapter adapter = new SqlDataAdapter(query, con);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        con.Close();

        return dt;
    }

    public void execute(String query)
    {

        con.Open();
        SqlCommand cmd = new SqlCommand(query, con);
        cmd.ExecuteNonQuery();

        con.Close();
    }
}

我在databsae中有MsProduct表,它总是有新数据。 ComboBox显示我的商品名称。我的问题是,当我在Label中选择所选项目时,我希望我的表单在ProductID Value ComboBox中显示其产品ID。并且数据与数据库中的数据相同例如,我在组合框中选择蝙蝠侠书,标签将显示其产品ID,并且数据库中的ID必须相同。能不能给我一个解决这个问题的代码示例?谢谢

2 个答案:

答案 0 :(得分:0)

如果它有一个值,你可以使用它。

    private object readScalarFromDatabase(String query) //return object at first column and row
    {
        SqlCommand myCommand = new SqlCommand(query, Connection);
        return myCommand.ExecuteScalar();
    }

    public static string GetTotalLinksAlias(Parameter par)
    {
        return @"
            select count(1)
            from alias_parameter_parameter
            where id_parameter = " + par.Id + @"
            ;
        ";
    }

    public int GetTotalLinksParameterWithParameterAliases(Parameter par)
    {
        openConnection();
        int totalLinks = (int)readScalarFromDatabase(QueryGenerator.GetTotalLinksParameterAlias(par));
        closeConnection();
        return totalLinks;
    }

然后你有你的int值或字符串,你可以更新标签值。它不是你的榜样,但你会明白这一点。

答案 1 :(得分:0)

实际上它非常简单。您只需要正确设置ComboBox

(更新代码以满足评论的其他要求)

Connect connect    = new Connect();
DataTable products = connect.executeSelect(GET_PRODUCTS_TABLE_QUERY);

productComboBox.DataSource    = products;
productComboBox.DisplayMember = "productName";
//removed setting of ValueMember so we can access the whole DataTableRow
//productComboBox.ValueMember   = "productID";

现在,您ComboBox的所有产品都包含其名称和ID。现在,您只需将所选产品的productID传递给您的标签。 为此,您需要处理SelectedValueChanged的{​​{1}}事件:

ComboBox