C# 如何在C中从CSV中删除记录?

C# 如何在C中从CSV中删除记录?,c#,csv,C#,Csv,我正在尝试从CSV格式的文本文件中删除记录。以下是我读取和插入记录的代码: OleDbConnection con = new OleDbConnection(); con.ConnectionString = constr; con.Open(); OleDbCommand COM = new OleDbCommand(); COM.Connection = con; COM.CommandText = "select * from shop.t

我正在尝试从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();
但它不适用于删除。删除查询如下所示:从shop.txt中删除*

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


OLEDBEException:此ISAM不支持删除相似列表中的数据

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

选择要保留在数据表中的数据,然后将其导出到csv文件。 解析CSV文件,过滤不需要的行,并将所有其他行写入另一个CSV文件。这可能比使用OLE将所有数据加载到内存中,然后将其转储回内存要快一些。
查询将从shop.txt中删除。。。delete语句中没有*。啊。我也错过了你问题的最后一部分。看起来无法使用带有OLE的CSV文件进行更新和删除。如果可以的话,您可能需要考虑使用其他数据格式。