C#中如何将DataTable的内容保存到文本文件中
How to save content of DataTable to a text file in C#
我有一个 Windows 表单应用程序,我在其中创建了 2 个不同的按钮。
第一个按钮向DataTable插入数据,这里:
public void button1_Click(object sender, EventArgs e)
{
var salesman = new Salesman();
salesman.Name = txtName.Text;
salesman.SecurityNumber = txtSecurity.Text;
salesman.District = txtDistrict.Text;
salesman.AmountSold = int.Parse(txtAmount.Text);
DataTable information = new DataTable();
information.Columns.Add("Namn");
information.Columns.Add("Personnummer");
information.Columns.Add("Distrikt");
information.Columns.Add("Antal artiklar", typeof(int));
DataRow row = information.NewRow();
row["Namn"] = salesman.Name;
row["Personnummer"] = salesman.SecurityNumber;
row["Distrikt"] = salesman.District;
row["Antal artiklar"] = salesman.AmountSold;
information.Rows.Add(row);
foreach (DataRow Drow in information.Rows)
{
int num = dataGridView1.Rows.Add();
dataGridView1.Rows[num].Cells[0].Value = Drow["Namn"].ToString();
dataGridView1.Rows[num].Cells[1].Value = Drow["Personnummer"].ToString();
dataGridView1.Rows[num].Cells[2].Value = Drow["Distrikt"].ToString();
dataGridView1.Rows[num].Cells[3].Value = Drow["Antal artiklar"];
}
if (salesman.AmountSold < 50)
{
levelOne++;
label8.Text = Convert.ToString(levelOne);
}
if (salesman.AmountSold >= 50 && salesman.AmountSold < 99)
{
levelTwo++;
label12.Text = Convert.ToString(levelTwo);
}
if (salesman.AmountSold >= 100 && salesman.AmountSold < 199)
{
levelThree++;
label13.Text = Convert.ToString(levelThree);
}
if (salesman.AmountSold >= 199)
{
levelFour++;
label14.Text = Convert.ToString(levelFour);
}
txtName.Text = "";
txtSecurity.Text = "";
txtDistrict.Text = "";
txtAmount.Text = "";
}
我的第二个按钮需要将所有这些存储的数据(来自 Salesman class 和标签等...)保存到一个文本文件中。验证与格式无关,我只想要纯文本。这是该按钮的代码:
private void button3_Click(object sender, EventArgs e)
{
System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\skrivbord\Borna.txt");
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for(int j = 0; j < dataGridView1.Columns.Count; j++)
{
file.Write("" + dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|");
}
file.WriteLine("");
file.WriteLine("");
}
file.Close();
MessageBox.Show("Din fil är hämtad");
}
目前,程序仅在尝试保存文件时显示 MessageBox。没有其他的。我在这里做错了什么,因为我是 C# 和 .NET 的新手,所以我能得到一些指导吗?
亲切的问候
要写入文件,您可以使用 File
class 和 WriteAllText
方法。
private void button3_Click(object sender, EventArgs e)
{
var txtFile = new StringBuilder();
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
string line = "";
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
line += dataGridView1.Rows[i].Cells[j].Value.ToString() + "\t" + "|";
}
txtFile.AppendLine(line);
}
string fileName = @"C:\skrivbord\Borna.txt";
System.IO.File.WriteAllText(fileName, txtFile.ToString());
}
或者你可以使用下面的代码
private void button3_Click(object sender, EventArgs e)
{
using (StreamWriter file = new StreamWriter((@"C:\skrivbord\Borna.txt"))
{
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
string line = "";
for(int j = 0; j < dataGridView1.Columns.Count; j++)
{
line = dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|";
}
file.WriteLine(line);
file.WriteLine("");
}
}
MessageBox.Show("Din fil är hämtad");
}
试试这个
StreamWriter file = new StreamWriter("C:\skrivbord\Borna.txt")
或
StreamWriter file = new StreamWriter(@"C:\skrivbord\Borna.txt")
我有一个 Windows 表单应用程序,我在其中创建了 2 个不同的按钮。
第一个按钮向DataTable插入数据,这里:
public void button1_Click(object sender, EventArgs e)
{
var salesman = new Salesman();
salesman.Name = txtName.Text;
salesman.SecurityNumber = txtSecurity.Text;
salesman.District = txtDistrict.Text;
salesman.AmountSold = int.Parse(txtAmount.Text);
DataTable information = new DataTable();
information.Columns.Add("Namn");
information.Columns.Add("Personnummer");
information.Columns.Add("Distrikt");
information.Columns.Add("Antal artiklar", typeof(int));
DataRow row = information.NewRow();
row["Namn"] = salesman.Name;
row["Personnummer"] = salesman.SecurityNumber;
row["Distrikt"] = salesman.District;
row["Antal artiklar"] = salesman.AmountSold;
information.Rows.Add(row);
foreach (DataRow Drow in information.Rows)
{
int num = dataGridView1.Rows.Add();
dataGridView1.Rows[num].Cells[0].Value = Drow["Namn"].ToString();
dataGridView1.Rows[num].Cells[1].Value = Drow["Personnummer"].ToString();
dataGridView1.Rows[num].Cells[2].Value = Drow["Distrikt"].ToString();
dataGridView1.Rows[num].Cells[3].Value = Drow["Antal artiklar"];
}
if (salesman.AmountSold < 50)
{
levelOne++;
label8.Text = Convert.ToString(levelOne);
}
if (salesman.AmountSold >= 50 && salesman.AmountSold < 99)
{
levelTwo++;
label12.Text = Convert.ToString(levelTwo);
}
if (salesman.AmountSold >= 100 && salesman.AmountSold < 199)
{
levelThree++;
label13.Text = Convert.ToString(levelThree);
}
if (salesman.AmountSold >= 199)
{
levelFour++;
label14.Text = Convert.ToString(levelFour);
}
txtName.Text = "";
txtSecurity.Text = "";
txtDistrict.Text = "";
txtAmount.Text = "";
}
我的第二个按钮需要将所有这些存储的数据(来自 Salesman class 和标签等...)保存到一个文本文件中。验证与格式无关,我只想要纯文本。这是该按钮的代码:
private void button3_Click(object sender, EventArgs e)
{
System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\skrivbord\Borna.txt");
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
for(int j = 0; j < dataGridView1.Columns.Count; j++)
{
file.Write("" + dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|");
}
file.WriteLine("");
file.WriteLine("");
}
file.Close();
MessageBox.Show("Din fil är hämtad");
}
目前,程序仅在尝试保存文件时显示 MessageBox。没有其他的。我在这里做错了什么,因为我是 C# 和 .NET 的新手,所以我能得到一些指导吗?
亲切的问候
要写入文件,您可以使用 File
class 和 WriteAllText
方法。
private void button3_Click(object sender, EventArgs e)
{
var txtFile = new StringBuilder();
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
string line = "";
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
line += dataGridView1.Rows[i].Cells[j].Value.ToString() + "\t" + "|";
}
txtFile.AppendLine(line);
}
string fileName = @"C:\skrivbord\Borna.txt";
System.IO.File.WriteAllText(fileName, txtFile.ToString());
}
或者你可以使用下面的代码
private void button3_Click(object sender, EventArgs e)
{
using (StreamWriter file = new StreamWriter((@"C:\skrivbord\Borna.txt"))
{
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
string line = "";
for(int j = 0; j < dataGridView1.Columns.Count; j++)
{
line = dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|";
}
file.WriteLine(line);
file.WriteLine("");
}
}
MessageBox.Show("Din fil är hämtad");
}
试试这个
StreamWriter file = new StreamWriter("C:\skrivbord\Borna.txt")
或
StreamWriter file = new StreamWriter(@"C:\skrivbord\Borna.txt")