将mysql数据库中的数据显示到列表框中(从组合框中选择的数据)c#

时间:2014-03-14 19:57:07

标签: c# mysql combobox

所以我试图将数据库中的数据显示到列表框中。但是我希望看到我在组合框中选择的数据,所以我打开组合框选择数据,然后它应该显示我正在尝试的一些数字,但我不确定它是否正确帮助我

代码:

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        string constring = "datasource=localhost;port=3306;username=root;password=";
        string Query = "Select ocena From filmi.film Where film = @film"; ;
        MySqlConnection conDataBase = new MySqlConnection(constring);
        MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
        cmdDataBase.Parameters.AddWithValue("@film", this.comboBox1.SelectedItem);
        MySqlDataReader myReader;
        try
        {
            conDataBase.Open();
            myReader = cmdDataBase.ExecuteReader();
            while (myReader.Read())
            {
                listBox2.Items.Add(myReader);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

2 个答案:

答案 0 :(得分:0)

您应该引用要添加到列表框的字段

listBox2.Items.Add(myReader["ocena"].ToString());

如果字段ocena可能包含空值,则需要

string ocenaValue = (myReader.IsDBNull(myReader.GetOrdinal("ocena")) ?
                    string.Empty, myReader["ocena"].ToString());
listBox2.Items.Add(ocenaValue);

作为最后一个提示,我建议在一次性物品周围使用Using Statement。这样,当您完成使用它们时,您的连接,命令和阅读器将被关闭和处理

    string constring = "datasource=localhost;port=3306;username=root;password=";
    string Query = "Select ocena From filmi.film Where film = @film"; ;
    using(MySqlConnection conDataBase = new MySqlConnection(constring))
    using(MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase))
    {
        try
        {
            conDataBase.Open();
            cmdDataBase.Parameters.AddWithValue("@film", this.comboBox1.SelectedItem);
            using(MySqlDataReader myReader = cmdDataBase.ExecuteReader())
            {
               while (myReader.Read())
               {
                   string ocenaValue = (myReader.IsDBNull(myReader.GetOrdinal("ocena")) ?
                                       string.Empty : myReader["ocena"].ToString());
                   listBox2.Items.Add(ocenaValue);
                }

            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

答案 1 :(得分:0)

Ocena是表格中的数据库表格还是项目?请参阅列名称,而不是项目或数据库表,您将获得数据。 e.g。

listBox2.Items.Add(myReader [ “膜”]的ToString());

将为您提供列电影中的所有项目

你发布的时间已经很久了,但它可以帮助其他人。