大家早上好,
我的C#代码中的方法存在一些问题,该方法应该可以将DataGridView保存到.txt文件。
代码如下:
private void saveToTxt_Btn_Click(object sender, EventArgs e)
{
filenameText.Text = serviceDataGrid.Rows.Count.ToString();
//string toOutFile = @"C:\" + filenameText.Text+".txt";
string toOutFile = @"C:\hello.txt";
FileStream toFile = new FileStream(toOutFile, FileMode.Create);
TextWriter toText = new StreamWriter(toOutFile);
int count = serviceDataGrid.Rows.Count;
toText.WriteLine("\t\t" + filenameText.Text);
toText.WriteLine("\t\t" + directoryText.Text+"\n\n");
for (int row = 0; row < count-1; row++)
{
toText.WriteLine(serviceDataGrid.Rows[row].Cells[0].Value.ToString());
}
toText.Close();
toFile.Close();
}
以下行返回错误:
TextWriter toText = new StreamWriter(toOutFile);
IOException未处理。
该进程无法访问文件'C:\ hello.txt',因为它正在被另一个进程使用。
我不确定是什么问题,但是这表明FileStream和TextWriter之间存在冲突。
有人能对此有所启示吗?
问候
最佳答案
您要打开两次;完全丢失所有toFile
内容,并在using
周围使用toText
:
using(TextWriter toText = File.CreateText(toOutFile))
{
toText.WriteLine("\t\t" + filenameText.Text);
toText.WriteLine("\t\t" + directoryText.Text+"\n\n");
foreach(DataGridViewRow row in serviceDataGrid.Rows)
{
toText.WriteLine(row.Cells[0].Value.ToString());
}
}
也;你真的是说
WriteLine(... + "\n\n")
吗?关于c# - DataGridView上的IOException写入文本文件C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1327521/