c#datareader一直挂着

时间:2009-12-03 16:26:45

标签: c# winforms

我有一个查询从mysql数据库中检索大约10000条记录,这些记录我正在读取.csv文件。

现在在70条记录之后,读者会挂起并且不再做任何事情了。

在此之前从未在我的其他代码中使用过这个(可能是我要检索的大数据)。

我的代码是这样的:

using (var reader = db.Retrieve(sql))
{
    while (reader.Read()) {

       //write results to my file

    }
}

代码挂起'while(reader.Read())'

我读了feed,但没有给出真正的答案。或其他解决方案?

5 个答案:

答案 0 :(得分:1)

您是否尝试过在另一个帖子中提出的任何建议?

尝试查看在SQL Management studio中生成并运行它的SQL,看看它是否运行缓慢。

尝试简化您的查询,看看是否会导致问题消失,然后尝试添加一些,然后看看它在工作和不工作之间究竟有什么区别。

答案 1 :(得分:0)

您是否尝试过此操作而不将其写入文件?

您是否尝试在没有DataReader的情况下运行此操作以确保查询正常?

如果是这样,可能值得尝试一个更简单的查询,以便它只返回一个字段,例如,如果表定义为具有单列主键,则返回主键。

答案 2 :(得分:0)

QueryBrowser中返回的行的模式是什么? mySQL是否以类似的方式对返回的结果进行批处理?

答案 3 :(得分:0)

它会永久挂起还是最终崩溃?如果崩溃将它放在try catch中,看看异常是什么。将存储过程也放在try catch中

答案 4 :(得分:0)

好的,我解决了悬挂在我的情况。 我的查询是复杂的,一次执行它。所以我简化了我的查询,现在我的文件写在结果中。