我只想说我几周前才加入stackoverflow,每个人都非常乐于助人,谢谢。我完成了本学期的最后两项家庭作业。我现在要做的是将我保存的数据导入我之前编写的程序中的文本文件。基本上,文本文件名为" client.txt"并且其中的数据看起来像这样
帐户#,名字,姓氏,平衡
我现在要做的是编写一个窗口表单,它将读取该文本文件中的数据并将其放入表单中相应的相应文本框中。这是我的代码到目前为止,我相信我在正确的轨道,但我遇到麻烦,因为我需要程序来做一个openfiledialog所以我可以手动选择client.txt文件,然后导入数据。现在我收到一个错误" System.IO.StreamReader不包含一个带0参数的构造函数"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Chapter_17_Ex.Sample_2
{
public partial class Form1 : Form
{
OpenFileDialog filechooser = new OpenFileDialog();
public Form1()
{
InitializeComponent();
}
private void btnImport_Click(object sender, EventArgs e)
{
StreamReader fileReader = new StreamReader();
string inputrecord = fileReader.ReadLine();
//string filename;
string[] inputfields;
if (inputrecord != null)
{
inputfields = inputrecord.Split(',');
txtAccount.Text = inputfields[0];
txtFirstName.Text = inputfields[1];
txtLastName.Text = inputfields[2];
txtBalance.Text = inputfields[3];
}
else
{
MessageBox.Show("End of File");
}
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
答案 0 :(得分:3)
要使用StreamReader,您需要构建它,至少传递要读取的文件名 这可以使用在全局级别
形式声明的OpenFileDialog变量来完成 // Show the OpenFileDialog and wait for user to close with OK
if(filechooser.ShowDialog() == DialogResult.OK)
{
// Check if the file exists before trying to open it
if(File.Exists(filechooser.FileName))
{
// Enclose the streamreader in a using block to ensure proper closing and disposing
// of the file resource....
using(StreamReader fileReader = new StreamReader(filechooser.FileName))
{
string inputrecord = fileReader.ReadLine();
string[] inputfields;
....
// The remainder of your code seems to be correct, but a check on the actual
// length of the array resulting from the Split call should be added for safety
}
}
}
请注意,OpenFileDialog和StreamReader都是具有许多属性和不同工作方式的复杂对象。您真的需要查看MSDN文档中的构造函数和属性列表以利用它们的全部功能