连接到数据库时出现C#错误

时间:2013-04-22 18:58:37

标签: c# database

try
{
    connection.Open();
    myReader = cmdDatabase.ExecuteReader();
    while (myReader.Read())
    {
       string nationality = myReader.GetString("country");
       cmbnationality.Items.Add(nationality);
    }
}

我遇到了这个问题:

Error   2   Argument 1: cannot convert from 'string' to 'int'

在这一行:

string nationality = myReader.GetString("country");

任何人都可以帮助我吗?我基本上试图从我的数据库中填充组合框中的值。 “country”是我在数据库中的列名。

4 个答案:

答案 0 :(得分:3)

GetString接受一个int参数,这是您想要的数据的序数。将其更改为:

string nationality = myReader.GetString(myReader.GetOrdinal("country"));

请参阅IDataReader.GetString方法here的文档。

答案 1 :(得分:2)

这只是因为Reader.GetString()期望int作为参数。您正在通过string。如果您必须传递字符串,则必须以这种方式调用它:

string nationality = myReader.GetString (reader.GetOrdinal("country"));

答案 2 :(得分:2)

使用GetString的正确方法如下

string nationality = myReader.GetString (myReader.GetOrdinal("country"));

MSDN - GetOrdinal
MSDN - GetString

答案 3 :(得分:0)

当您传递字符串时,

GetString需要 int 参数。这样做:

string nationality = myReader.GetString (myReader.GetOrdinal("country"));

请阅读以下内容了解详情:

GetOrdinal

GetString