Problems with Streamwriter

本文关键字:Streamwriter with Problems | 更新日期: 2023-09-27 18:19:21

我知道这听起来很愚蠢,但我有一个非常简单的应用程序,它将一些用户的一些数据保存在数据库中,然后我想将所有数据写入一个。txt文件。

代码如下:

    List<MIEMBRO> listaMiembros = bd.MIEMBRO.ToList<MIEMBRO>();

    fic.WriteLine("PARTICIPACIONES GRATUITAS MIEMBROS: ");
    mi = new Miembro();
    foreach (MIEMBRO_GRATIS m in listaMiembroGratis)
    {
         mi.setNomMiembro(m.nomMiembro);
         mi.setNumRifa(m.numRifa.ToString());
         fic.WriteLine(mi.ToString());
    }
    fic.WriteLine();
如你所见,非常简单的代码。问题是:我在数据网格上显示信息,我知道还有很多成员,但它在某个点停止写入。

是否有任何数量的行或字符写在流写器??为什么我不能写所有的成员,只能写一部分??

Problems with Streamwriter

fic在您查看输出文件时可能没有被刷新;如果您将它实例化为using块的参数,那么当您完成后,它将被刷新、关闭和处理。

此外,如果您正在正确刷新(但在检查文件时没有刷新),您可以在每次迭代结束时刷新:

foreach (MIEMBRO_GRATIS m in listaMiembroGratis)
{
     mi.setNomMiembro(m.nomMiembro);
     mi.setNumRifa(m.numRifa.ToString());
     fic.WriteLine(mi.ToString());
     fic.Flush();
}

这会稍微降低性能,但它至少会让您有机会看到哪个记录写入失败(如果确实抛出了异常)。

有多少行或字符要写在streamwriter ? ?

不,没有。

如你所见,非常简单的代码。问题是:我展示的信息是一个数据网格,我知道还有更多的成员,但它停止了写在某个点

我的猜测是你的代码抛出了一个异常,而你没有捕捉到它。我会看看MiembrosetNomMiembro, setNumRifaToString的实现;顺便说一下,在setNomMiembrosetNumRifa的情况下,应该作为属性({get;set;})实现,而不是作为方法。

例如,在numRifa中调用ToString,如果numRifa为空,则会抛出空指针异常。