public static bool DataTableToTxt(DataGridView gridview, string fileName,char strSplit)
        {
            if (gridview == null || gridview.Rows.Count == 0)
                return false;
            string filename=fileName;
            FileStream fileStream = new FileStream(filename, FileMode.OpenOrCreate);
            StreamWriter streamWriter = new StreamWriter(fileStream, System.Text.Encoding.UTF8);            StringBuilder strBuilder = new StringBuilder();            try
            {
                for (int i = 0; i < gridview.Rows.Count; i++)
                {
                    strBuilder = new StringBuilder();
                    for (int j = 0; j < gridview.Columns.Count; j++)
                    {
                        strBuilder.Append(gridview.Rows[i].Cells[j].Value.ToString() + strSplit);
                    }
                    //strBuilder.Remove(strBuilder.Length - 1, 1); // 将最后添加的一个strSplit删除掉
                    streamWriter.WriteLine(strBuilder.ToString());
                }
            }
            catch (Exception ex)
            {
                string strErrorMessage = ex.Message;
                return false;
            }
            finally
            {
                streamWriter.Close();
                fileStream.Close();
            }            return true;
        }
这是我的代码,它每次只能成功的读取一个datagridview的数据,要是有两个datagridview就会出现数据覆盖现象大侠,可否帮我看一下哈~~

解决方案 »

  1.   

    FileStream fileStream = new FileStream(filename, FileMode.Append);
      

  2.   

    有两种方法供你参考:
    1、比较简单的:FileStream fileStream = new FileStream(filename, FileMode.OpenOrCreate);改成
           FileStream fileStream = new FileStream(filename, FileMode.Append);
           文件流以追加的形式写进去,这样后面DataGridView的数据也追加进去,方法2、将 public static bool DataTableToTxt(DataGridView gridview, string fileName,char strSplit)改成 
                 public static bool DataTableToTxt(DataGridView gridview [], string fileName,char strSplit)
                  就是(DataGridView以数组的方式传进去,当然代码中就要再加对这个(DataGridView数组的处理,就复杂了一点