【发布时间】:2015-11-22 05:39:53
【问题描述】:
我在 winform 中有一个组合框,它通过调用 MySQL 中的存储过程来获取数据。
我的存储过程:
CREATE PROCEDURE `GetCourses`()
BEGIN
SELECT course_name FROM my_db.courses where group_id=1;
END
现在课程名称与 Combobox(ComboBox2) 绑定如下 - 在选择另一个 Combobox(ComboBox1) 时:
private void Form_Load(object sender, EventArgs e)
{
var connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
conn = new MySqlConnection(connectionString);
conn.Open();
MySqlCommand cmd1 = new MySqlCommand();
cmd1.Connection = conn;
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.CommandText = "GetCourses";
DataTable dt1 = new DataTable();
MySqlDataAdapter adp1 = new MySqlDataAdapter(cmd1);
adp1.Fill(dt1);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 3)
{
comboBox2.ValueMember = "course_name";
comboBox2.DisplayMember = "course_name";
comboBox2.DataSource = dt1;
}
}
但是当我运行表单时,ComboBox 会填充为“system.data.datarowview”的值
谁能帮帮我。
注意:我不想通过使用“MySqlDataReader”来实现这一点
提前致谢。
【问题讨论】:
-
表适配器不是更好的工具吗?我认为您在数据适配器中使用了错误的工具,因为它创建了一个完整的数据集。那或者你可能需要指定它应该从中获取数据和列名的确切表。
标签: c# mysql winforms combobox