0
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");

谁能帮我?我基本上是在尝试从我的数据库中填充组合框中的值。“国家”是我在数据库中的列名。

4

4 回答 4

3

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

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

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

于 2013-04-22T19:01:11.477 回答
2

这仅仅是因为Reader.GetString()需要一个int作为参数。你正在传递一个string. 如果你必须传递一个字符串,你将不得不这样调用它:

string nationality = myReader.GetString (reader.GetOrdinal("country"));
于 2013-04-22T19:00:55.110 回答
2

GetString 的正确使用方法如下

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

MSDN - 获取序号
MSDN - 获取字符串

于 2013-04-22T19:02:17.643 回答
0

GetString需要一个int参数,而您正在传递一个string。改为这样做:

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

详情请阅读以下内容:

获取序号

获取字符串

于 2013-04-22T19:37:03.703 回答