我们如何将组合框与数据库表链接起来?

时间:2014-06-17 14:22:14

标签: c# sql combobox

我有一个名为comboBox2的combox,我想用我的数据库表名为'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。

2 个答案:

答案 0 :(得分:1)

错误信息清楚地说明;

SqlDataReader.GetString method没有重载需要string作为参数。

此方法将int作为参数,该参数是您要获取的从零开始的列的数量。

您需要在查询中输入Stud_Name列号的整数值。

例如;如果您的Stud_Namequery的第一列,则可以像使用它一样使用

string sName = myreader.GetString(0);

还可以使用using statement处理您的SqlConnectionSqlCommandSqlDataReader

答案 1 :(得分:1)

您的问题是传递给名为GetString的方法的参数。你应该传递列的索引,你要读取。您可以传递列的名称,而不是这样做。这就是您收到此错误消息的原因。

有关更多文档,请查看here