我知道这听起来很愚蠢,但我有一个非常简单的应用程序,它将一些用户的数据保存在数据库中,然后我想将所有数据写到一个.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();如你所见,非常简单的代码。问题是:我在一个数据网格上显示信息,我知道有更多的成员,但它在某些点上停止了写入。
在streamwriter上有多少行或几个字符要写??为什么我不能写所有的成员,只写他们的一部分?
发布于 2012-01-04 22:55:01
当您查看输出文件时,fic可能还没有被刷新;如果您将它实例化为using块的参数,那么当您完成操作时,它将被刷新、关闭和清除。
此外,如果您正在正确刷新(但在检查文件时未刷新),您可以在每次迭代结束时刷新:
foreach (MIEMBRO_GRATIS m in listaMiembroGratis)
{
mi.setNomMiembro(m.nomMiembro);
mi.setNumRifa(m.numRifa.ToString());
fic.WriteLine(mi.ToString());
fic.Flush();
}这将略微降低性能,但至少可以让您有机会查看哪条记录写入失败(如果确实抛出了异常)。
发布于 2012-01-04 22:53:31
在流写入器上有多少行或几个字符要写??
不,没有。
如你所见,非常简单的代码。问题是:我在一个数据网格上显示信息,我知道有更多的成员,但它在某些点上停止了写入
我的猜测是你的代码抛出了一个异常,而你没有捕捉到它。我将研究Miembro中setNomMiembro, setNumRifa和ToString的实现;顺便说一句,在setNomMiembro和setNumRifa的情况下,它们可能应该作为属性({get;set;})而不是方法来实现。
例如,如果numRifa为空,则在numRifa中调用ToString将抛出空指针异常。
https://stackoverflow.com/questions/8728740
复制相似问题