调用read()之前访问字段的尝试无效

Sub*_*ero 5 c# mysql database

我现在已经搜索了好几个小时,正在寻找解决这个问题的方法.我正在尝试使用以下代码从正确的查询中获取数据库中的信息.我知道这些查询有效,因为我已在MySQL工作台中测试过它们.我一直收到错误:

调用read()之前访问字段的尝试无效

正如您将看到的,我确实调用了read(),而我的研究只是没有使用正确的数据库,我也已经验证了它是正确的.有关为什么我收到此错误的任何想法?在此先感谢您的帮助.

public static string ExecuteSelect(string query)
{
    //Example query is: SELECT entity_id FROM catalog_product_flat_1 WHERE sku='itemSku';
    string statement = "";

    MySqlCommand myCommand = new MySqlCommand(query, _conn);

    MySqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    myReader.Read();

    statement = myReader.GetString(0);
    myReader.Close();

    return statement;
}
Run Code Online (Sandbox Code Playgroud)

csa*_*uve 9

不确定这是否是您的问题,但您应该始终检查Read()的结果.例如

if (myReader.Read())
{
  statement = myReader.GetString(0);
}
Run Code Online (Sandbox Code Playgroud)

编辑:你还实际做的是检索一个标量,因此你可以使用ExecuteScalar()

return (myCommand.ExecuteScalar() ?? string.Empty).ToString();
//also rename your method appropriately
Run Code Online (Sandbox Code Playgroud)