从Mysql数据库检索记录,并显示在一个组合框中
本文关键字:一个 组合 检索 数据库 Mysql 记录 显示 | 更新日期: 2023-09-27 18:06:44
我有一个DbConnect
类,它查询MySQL数据库并将结果存储到一个数据表中-就像这样:
public DataTable selectCombo()
{
string query = "SELECT DISTINCT month FROM printer_count";
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, connection);
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(dt);
}
this.CloseConnection();
return dt;
}
现在如何检索数据表从类到组合框主表单?我能做这样的事吗?
ComboBox1.DataSource = dbConnect();
ComboBox1.DisplayMember = "Name"; // column name to display
您有两个同名的变量。(dt)一个定义为字符串,另一个在if块中定义为数据表。您返回空字符串,当然,当您试图分配组合
的数据源时,这无法工作public DataTable selectCombo()
{
DataTable dt = new DataTable();
string query = "SELECT DISTINCT month FROM printer_count";
if (this.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(dt);
}
this.CloseConnection();
return dt;
}
现在你可以写
....
ComboBox1.DisplayMember = "Name";
ComboBox1.DataSource = selectCombo();
.....
这个代码也不是很安全。如果由于任何原因,您得到一个异常,CloseConnection将不会被调用,留下一个打开的连接,这对系统的稳定性是非常有问题的。但是,修复该问题需要对OpenConnection代码采用不同的方法。而不是true,这个方法应该返回MySqlConnection对象,这样你的调用代码可以在连接实例