如何在c#中从CSV中删除记录

本文关键字:删除 记录 CSV 中从 | 更新日期: 2023-09-27 17:54:07

我试图从CSV格式的文本文件中删除记录。下面是我读取和插入记录的代码:

    OleDbConnection con = new OleDbConnection();
    con.ConnectionString = constr;
    con.Open();
    OleDbCommand COM = new OleDbCommand();
    COM.Connection = con;
    COM.CommandText = "select * from shop.txt where id like '" + textBoxSearch.Text + "%'";
    OleDbDataAdapter da = new OleDbDataAdapter(COM);
    DataSet ds = new DataSet();
    da.Fill(ds);
    COM.ExecuteNonQuery();
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
    con.Close();

但它不工作为移除。删除查询如下:delete * from shop.txt where id like <something>

注意:当调用ExecuteNoneQuery时发生以下异常

oledbeexception:此ISAM不支持删除喜欢列表中的数据。

如何在c#中从CSV中删除记录

从文本文件中删除行并不容易-因此OLE适配器不支持它。一些选项:

  • 选择需要保存在DataTable中的数据,然后导出为csv文件。
  • 解析CSV文件,过滤不需要的行,并将所有其他行写入另一个CSV文件。这可能比使用OLE将所有数据加载到内存中然后将它们转储回来要快一点。