我用如下方式将一个DataTable写入一个TXT文件中,但重复点写入button,出现写入内容重复写入的问题,我需要的是写入一次就够了,但现在是追加写入,不知道是什么问题?
private void TabWriteToTxt(DataTable tb, string fname)
{
FileStream fs;
StreamWriter sw;
try
{
fs = File.Create(fname);
sw = new StreamWriter(fs); string tmpstr = "";
int cols = tb.Columns.Count;
foreach (DataRow dr in tb.Rows)
{
tmpstr = "";
for (int i = 0; i < cols; i++)
{
tmpstr += dr[i].ToString().Trim();
if ((i + 1) < cols) tmpstr += "\t";
}
sw.WriteLine(tmpstr);
}
sw.Close();
}
catch (Exception ex)
{
ShowErrorMessage("保存文件发生异常!" + ex.Message.ToString());
}
}
private void TabWriteToTxt(DataTable tb, string fname)
{
FileStream fs;
StreamWriter sw;
try
{
fs = File.Create(fname);
sw = new StreamWriter(fs); string tmpstr = "";
int cols = tb.Columns.Count;
foreach (DataRow dr in tb.Rows)
{
tmpstr = "";
for (int i = 0; i < cols; i++)
{
tmpstr += dr[i].ToString().Trim();
if ((i + 1) < cols) tmpstr += "\t";
}
sw.WriteLine(tmpstr);
}
sw.Close();
}
catch (Exception ex)
{
ShowErrorMessage("保存文件发生异常!" + ex.Message.ToString());
}
}
File.Delete(fname);fs = File.Create(fname);
sw = new StreamWriter(fs); string tmpstr = "";
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("c1");
dt.Columns.Add("c2");
dt.Columns.Add("c3");
dt.Rows.Add("1","1","1");
dt.Rows.Add("2","2","2");
dt.Rows.Add("3","3","3"); TabWriteToTxt(dt, "c:\\ls.txt");
}private void TabWriteToTxt(DataTable tb, string fname)
{
StreamWriter sw;
try
{
sw = new StreamWriter(fname, false); string tmpstr = "";
int cols = tb.Columns.Count;
foreach (DataRow dr in tb.Rows)
{
tmpstr = "";
for (int i = 0; i < cols; i++)
{
tmpstr += dr[i].ToString().Trim();
if ((i + 1) < cols) tmpstr += "\t";
}
sw.WriteLine(tmpstr);
}
sw.Close();
}
catch (Exception ex)
{
// ShowErrorMessage("保存文件发生异常!" + ex.Message.ToString());
}
}
File.Delete(fname); fs = File.Create(fname);
sw = new StreamWriter(fs); string tmpstr = "";
private void TabWriteToTxt(DataTable tb, string fname)
{
StringBuilder sb = new StringBuilder();
foreach (DataRow row in tb.Rows)
{
for (int i = 0; i < tb.Columns.Count; i++)
{
sb.AppendFormat("{0}{1}", row[i], i == tb.Columns.Count - 1 ? Environment.NewLine : "\t");
}
}
File.WriteAllText(fname, sb.ToString());
}