繁体   English   中英

如何将C#中的数据保存到txt文件中?

[英]How to save data from C# in a txt file?

我是编程新手,遇到一些困难。 我希望将正在生成的数据(WPF DataGrid )保存到文本文件中。

这是我目前拥有的:

MainWindow.xaml.cs:

private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    string fileName = @"D:\projects\PersonInfos\Files\PersonInfos_Copy.txt";
    PersonInfosTable.ConvertToTXTFile(fileName);
}

PersonInfosTable.cs:

public void ConvertToTXTFile(string fileName)
{
    StringBuilder sb = new StringBuilder();
    System.Text.Encoding Output = null;
    Output = System.Text.Encoding.Default;

    foreach (PersonInfos personinfos in PersonInfoDetails)
    {
        if (PersonInfos.SelectCheckBox == true)
        {
            string line = String.Format("L§" + personinfos.FirstName + "§" + personinfos.LastName + "§");
            sb.AppendLine(line);

            StreamWriter file = new StreamWriter(fileName);
            file.WriteLine(sb);

            file.Close();
        }
    }
}

不幸的是,这不起作用。 PersonInfosDetails的类型为ObservationCollections<T>SelectCheckBox是用户选择的复选框,并指示用户要保存的文件。

有什么想法或建议吗? 非常感谢您的帮助,也非常感谢您的宝贵时间!

还不清楚什么是SelectCheckBox属性。 但是,您需要将程序的编写部分移出循环。 在循环内部,只需将每个人的信息添加到您的StringBuilder实例中即可。

 public void ConvertToTXTFile(string fileName)
 {
     StringBuilder sb = new StringBuilder();
     System.Text.Encoding Output = System.Text.Encoding.Default;
     foreach (PersonInfos personinfos in PersonInfoDetails)
     {
         // Collect every personinfos selected in the stringbuilder
         if (personinfos.SelectCheckBox == true)
         {
            string line = String.Format("L§" + personinfos.FirstName + "§" + personinfos.LastName + "§");
            sb.AppendLine(line);
         }
     }

     // Now write the content of the StringBuilder all together to the output file
     File.WriteAllText(filename, sb.ToString())
}

您是否尝试过: 如何写入文本文件(C#编程指南)

另外,除非SelectCheckBoxPersonInfos类的静态属性,否则您提供的代码将不起作用。 您可能必须将if语句更改为

if (personInfos.SelectCheckBox == true)
{
    // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM