Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向文本文件追加文本时出现问题?_C#_Append_Streamwriter - Fatal编程技术网

C# 向文本文件追加文本时出现问题?

C# 向文本文件追加文本时出现问题?,c#,append,streamwriter,C#,Append,Streamwriter,我正在尝试编写一个代码,用户在文本框中输入交货细节,然后将文本添加到一个txt文件记事本txt文件中。 这是我的尝试,我得到一个额外的行,为什么它不添加文本从文本框到文本文件 private void FrmDelivery_Load(object sender, EventArgs e) { if (theDelivery != null) { txtCustomerName.Text = theDelivery.customerName; tx

我正在尝试编写一个代码,用户在文本框中输入交货细节,然后将文本添加到一个txt文件记事本txt文件中。 这是我的尝试,我得到一个额外的行,为什么它不添加文本从文本框到文本文件

private void FrmDelivery_Load(object sender, EventArgs e)
{
    if (theDelivery != null)
    {
        txtCustomerName.Text = theDelivery.customerName;
        txtCustomerAddress.Text = theDelivery.customerAddress;
        txtArrivalTime.Text = theDelivery.arrivalTime;      
        using (StreamWriter writer = new StreamWriter("visits.txt", true)) //true shows that text would be appended to file
        {
            writer.WriteLine(theDelivery.customerName + ", " + theDelivery.customerAddress + ", " + theDelivery.arrivalTime);
        }
    }
} 

…因为您没有将文本框的内容写入文件。。您正在编写的变量似乎未在任何地方初始化:

固定的:

writer.WriteLine(txtCustomerName.Text + ", " + txtCustomerAddress.Text + ", " + txtArrivalTime.Text); // Fixed.

而且,你是在表单加载的情况下完成的。。此时文本框中是否有数据,或者交付是否已初始化?

问题是您正在表单加载时写入文件。我假设您只想在用户更改某些内容时写入它

因此,您可以处理“保存”按钮的单击事件以写入:

private void FrmDelivery_Load(object sender, EventArgs e)
{
    if (theDelivery != null)
    {
        txtCustomerName.Text = theDelivery.customerName;
        txtCustomerAddress.Text = theDelivery.customerAddress;
        txtArrivalTime.Text = theDelivery.arrivalTime;      
    }
} 

private void btnSave_Click(object sender, System.EventArgs e)
{
    string line = string.Format("{0},{1},{2}{3}"
                , txtCustomerName.Text 
                , txtArrivalTime.Text  
                , theDelivery.arrivalTime
                , Environment.NewLine);
    File.AppendAllText("visits.txt", line);   
}

只是另一种写入文件的舒适方式。

您的customerName、customerAddress和Delivery对象的arrivalTime字符串属性都初始化为空字符串。在写入文件之前,您应该设置一些字符串。

我有两个表单,在主表单中有一个列表框,用于显示交付,当您单击其中一个交付时,其详细信息将显示在另一个表单中。然后,代码中会出现更大的问题。在该行上放置断点。。文本框或变量中是否有数据?文本框中是否有输入的数据..表单加载时是否有数据?你有没有使用过调试器?我有一个txt文件,其中包含数据并在开始时加载。交付是从类delivery创建的对象。用于写入文件的代码看起来很好,你甚至可以得到,。因此,使用调试器并找出delivery.customerName等为空的原因。-1。请将您的标题和示例代码对齐:您的标题询问如何附加到文件中,但您的代码和问题的文本表明,只要没有值,附加就可以很好地工作。