如何将组合框与数据库表连接起来?

本文关键字:连接 起来 数据库 组合 | 更新日期: 2023-09-27 18:09:03

我有一个名为comboBox2的组合框,我想用我的数据库表'Student_Table'的列'Stud_Name'填充这个组合框我使用以下代码:

void Fillcombo()
{
    string constring = "Data Source=(LocalDB)''v11.0;AttachDbFilename=C:''ChaCha''ChaCha''chacha.mdf;Integrated Security=False";
    string query = "select * from database.Student_Table";
    SqlConnection condb = new SqlConnection(constring);
    SqlCommand cmddb = new SqlCommand(query, condb);
    SqlDataReader myreader;
    try
    {
        condb.Open();
        myreader = cmddb.ExecuteReader();
        while(myreader.Read())
        {
            string sName = myreader.GetString("Stud_Name");
            comboBox2.Items.Add(sName);
        }
    }
    catch (Exception ex)
    {
    }
}

但是,我得到这样的错误信息:

最佳重载方法匹配'System.Data.Common.DbDataReader.GetString(int)'有一些无效值参数。

如何删除此错误?我用的是Visual Studio 2012

如何将组合框与数据库表连接起来?

错误信息明确表示;

string为参数的SqlDataReader.GetString方法不存在重载

此方法以int为参数,该参数是您希望获得的从零开始的列的个数。

您需要将查询中的Stud_Name列号作为整数值。

例如

;如果你的Stud_Name是你的query的第一列,你可以这样使用;

string sName = myreader.GetString(0);

还使用using语句来处理您的SqlConnection, SqlCommandSqlDataReader

您的问题是您传递给称为GetString的方法的参数。你应该传递你想要读取的列的索引。不需要这样做,而是传递列的名称。这就是为什么你会得到这个错误信息。

有关更多文档,请查看此处