我有一个这样的表格
我有一个类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必须相同。能不能给我一个解决这个问题的代码示例?谢谢
答案 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