如何将多个文本框中的数据保存到单个文件中? [英] How do I save data from multiple textboxes to 1 single file?

查看:58
本文介绍了如何将多个文本框中的数据保存到单个文件中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好我有问题,我可以解决。请帮助...

所以问题是我想将多个文本框中的数据保存到一个文件中。



我试过做这个:



 私人  void  saveAsToolStripMenuItem_Click( object  sender,EventArgs e)
{
if (saveFileDialog1.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
File.WriteAllText(saveFileDialog1.FileName,textBox1.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox2.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox3.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox4.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox5.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox6.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox7.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox8.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox9.Text);
}
}



以上问题是,只写入文件中的最后一个文本框数据,并将文件打开/读回我这样做的程序:





  private   void  openToolStripMenuItem_Click( object  sender,EventArgs e)
{
< span class =code-keyword> if (openFileDialog1.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
label1.Text = openFileDialog1.FileName;
textBox1.Text = File.ReadAllText(label1.Text);
textBox2.Text = File.ReadAllText(label1.Text);
textBox3.Text = File.ReadAllText(label1.Text);
textBox4.Text = File.ReadAllText(label1.Text);
textBox5.Text = File.ReadAllText(label1.Text);
textBox6.Text = File.ReadAllText(label1.Text);
textBox7.Text = File.ReadAllText(label1.Text);
textBox8.Text = File.ReadAllText(label1.Text);
textBox9.Text = File.ReadAllText(label1.Text);
}
}



对于所有文本框,它会在我保存文件之前打开所提供的信息,例如:到最后一个文本框写成Hello,所有文本框都显示Hello



请帮助

解决方案

引用:

以上问题是写入文件只有最后一个文本框数据



确实,但为什么?在再次划伤之前,先看看你的代码。



 File.WriteAllText(saveFileDialog1.FileName,textBox1.Text); 
File.WriteAllText(saveFileDialog1.FileName,textBox2.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox3.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox4.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox5.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox6.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox7.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox8.Text);
File.WriteAllText(saveFileDialog1.FileName,textBox9.Text);





File.WriteAllText( param,param); 通过覆盖文件中存在的任何内容来写入所有文本。会发生的是,在您的第一行中,它使用 textBox2.Text 覆盖以前的所有数据。然后循环继续,在下一行中它用 textBoxn.Text 覆盖以前的数据(其中n是3,4,5 ... 9 )。这就是为什么,在 textBox9.Text ,没有更多的代码来覆盖前一个并且文件包含数据,当你读取它读取该数据的文件时也是如此写在文本框中。



然后如何解决?是的,解决方案是您需要包含以前的数据。在途中是将先前的数据与现在存储的数据连接起来,例如,



 File.WriteAllText(
fileName,
File.ReadAllText(fileName)+ textBoxn.Text; // (其中n为2 ,3,4 ... 9)
);





更好的解决方案是使用AppendAllText,它可以高效地为您完成。您将保留以前的内容,并将您将新内容存储在文件中。



 File.AppendAllText(saveFileDialog1.FileName,textBox1.Text); 
File.AppendAllText(saveFileDialog1.FileName,textBox2.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox3.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox4.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox5.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox6.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox7.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox8.Text);
File.AppendAllText(saveFileDialog1.FileName,textBox9.Text);





现在它将继续保留其中的所有内容,您可以使用以下方式删除以前的内容:



 File.WriteAllText(fileName,  );  //  删除内容 
// 其他代码附加文字





然后你就可以得到内容回来了,但请记住,您需要获取每个文本框中的每一行或您正在做的任何事情。您肯定可以使用 Environment.NewLine 添加新行,以便每条记录都以新行显示。 : - )


Hello guys I have a problem, and I can solve it. PLEASE HELP...
So the problem is I want to save data from multiple textboxes into one single file.

I have tried doing this:

private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
        {
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
File.WriteAllText(saveFileDialog1.FileName, textBox1.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox2.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox3.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox4.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox5.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox6.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox7.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox8.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox9.Text);  
            }
        }


And above the problem is that is writing to file only the last textboxes data, and for open/read the file back to the program I did this:


private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                label1.Text = openFileDialog1.FileName;
               textBox1.Text = File.ReadAllText(label1.Text);
                textBox2.Text = File.ReadAllText(label1.Text);
                textBox3.Text = File.ReadAllText(label1.Text);
                textBox4.Text = File.ReadAllText(label1.Text);
                textBox5.Text = File.ReadAllText(label1.Text);
                textBox6.Text = File.ReadAllText(label1.Text);
                textBox7.Text = File.ReadAllText(label1.Text);
                textBox8.Text = File.ReadAllText(label1.Text);
                textBox9.Text = File.ReadAllText(label1.Text);
            }
        }


And to all textboxes it opens that information given before I saved the file e.g. to the last textbox was written "Hello" and to all textboxes it shows "Hello"

PLEASE HELP

解决方案

Quote:

And above the problem is that is writing to file only the last textboxes data


Exactly, but why? Have a look at your code before you scratch your head again.

File.WriteAllText(saveFileDialog1.FileName, textBox1.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox2.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox3.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox4.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox5.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox6.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox7.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox8.Text);
File.WriteAllText(saveFileDialog1.FileName, textBox9.Text);



File.WriteAllText(param, param); writes all the text by overwriting anything present in the file already. What happens is, that in your first line it overwrite any previous data with your textBox2.Text. Then the cycle continues, in the next line it overwrites the previous data with textBoxn.Text (where n is 3, 4, 5... 9). That is why, at the textBox9.Text there is no more code to overwrite the previous and the file contains the data, same thing when you read the file it reads that data and write there in the text boxes.

Then how to solve it? Right, the solution is that you need to contain the previous data. On way is to concatenate the previous data with the data that is being stored now, for example,

File.WriteAllText(
   fileName,
   File.ReadAllText(fileName) + textBoxn.Text; // (where n is 2, 3, 4... 9)
);



Even a better solution is to use the AppendAllText, which does that for you efficiently. You would keep the previous content and will get you to store the new content in the file also.

File.AppendAllText(saveFileDialog1.FileName, textBox1.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox2.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox3.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox4.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox5.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox6.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox7.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox8.Text);
File.AppendAllText(saveFileDialog1.FileName, textBox9.Text);



Now it will continue to keep everything in it, you can remove the previous content by using,

File.WriteAllText(fileName, ""); // Remove content
// Rest of the code to append text



Then you can get the content back, but remember you would need to get each line in each textBox or whatever you are doing. You can surely add a new line using Environment.NewLine so that each record comes in a new line. :-)


这篇关于如何将多个文本框中的数据保存到单个文件中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆