我要读取的.csv文件内容是这样:  序号,名称,地址,区号代码
                                 1,酒店,市江滨路,2012
                                 2,餐厅,市江河路,2013
                                 3,医院,市厦禾路,2014
点击按钮读取的代码如下:
        OpenFileDialog file = new OpenFileDialog();
            file.Filter = "文档(*.csv)|*.csv";
            if (file.ShowDialog() == DialogResult.OK)
            {
                filepath.path = file.FileName;
                DataTable dt = new DataTable();
                dt.Columns.Add("状态", typeof(String));
                dt.Columns.Add("匹配方法新", typeof(String));
                dt.Columns.Add("匹配方法旧", typeof(String));
                dt.Columns.Add("序号", typeof(String));
                dt.Columns.Add("名称", typeof(String));
                dt.Columns.Add("地址", typeof(String));
                dt.Columns.Add("区划代码", typeof(String));
                string[] lines = File.ReadAllLines(file.FileName, Encoding.Default);
                for (int i = 1; i < lines.Length; i++)
                {
                    string[] data = lines[i].Split(',');
                    DataRow dr = dt.NewRow();
                    dr[3] = data[0];
                    dr[4] = data[1];
                    dr[5] = data[2];
                    dr[6] = data[3];
                    dt.Rows.Add(dr);
                }
                this.dataGridView1.DataSource = dt;
              }
如上面所示在显示的datagridview中,我增加了“状态”等三列,现在怎么把datagridview整个表的内容重新保存到原文件中。??求解??或者怎么用代码添加我增加的列,要增加到原来列的前面

解决方案 »

  1.   

    DataTable导出CSV
      

  2.   

    这样子不就又生成一个新文件了,我是想实现修改datagridview中一行数据后,点击按钮。可以直接覆盖掉原文件行数据。有其他方法????
      

  3.   

    Pass in FileMode.Create to File.Open(string, FileMode) when opening the file and it will create a new file every time.FileStream file = File.Open("text.txt", FileMode.Create);来自:
    Overriding an existing file in C#
    http://stackoverflow.com/questions/793589/overriding-an-existing-file-in-c-sharp
      

  4.   

    [code=C#]
                using (StreamWriter sw = new StreamWriter(filePath)) {
                    sw.WriteLine("标题1,标题2");
                    foreach (DataGridViewRow row in this.dataGridView1.Rows) {
                        sw.WriteLine("{0},{1}",
                            row.Cells[0].Value, row.Cells[1].Value);
                    }
                }
    [Code]
      

  5.   

    根据你的需求吧标题补充完整
    using (StreamWriter sw = new StreamWriter(filePath)) {
        sw.WriteLine("标题1,标题2");
        foreach (DataGridViewRow row in this.dataGridView1.Rows) {
            sw.WriteLine("{0},{1}",
                row.Cells[0].Value, row.Cells[1].Value);
        }
    }