首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySqlDataReader阅读

使用MySqlDataReader阅读
EN

Stack Overflow用户
提问于 2011-04-10 01:33:58
回答 1查看 28.9K关注 0票数 0

你好,我在用MySqlDataReader阅读时遇到了问题。我试着把while()改成if(),然后就成功了。所以我对while (Reader.Read())做了一些错误的事情。谢谢你的回答。(今天的另一个问题已经解决了,有人评论帮助了我xd )

代码语言:javascript
复制
using (MySqlCommand cmd = new MySqlCommand
      ("SELECT * FROM `citationer`",  mysqlCon))
{
    try
    {
        MySqlDataReader Reader = cmd.ExecuteReader();
        while (Reader.Read()) // this part is wrong somehow
        {
            citationstexter.Add(Reader.GetString(loopReading)); // this works
            loopReading++; // this works
        }
        Reader.Close();
    }

    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-10 01:45:43

您的问题是使用GetStringloopReading参数。这个参数应该是从零开始的列序数(列号),但是您读取的每一行都递增它。

有关更多信息,请查看此处:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getstring.aspx

您应该为citationer表的第一列使用0,为第二列使用1,依此类推。

另外,这是一个很好的实践,使用

代码语言:javascript
复制
  using(MySqlDataReader Reader = cmd.ExecuteReader()) 
  {
    ...
  }

就像您为避免内存泄漏而对mySqlCommand对象所做的那样(但这不是您的问题)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5606643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档