无法通过 C# 中的 OleDB 从 Microsoft Access 中删除表的所有行

Posted

技术标签:

【中文标题】无法通过 C# 中的 OleDB 从 Microsoft Access 中删除表的所有行【英文标题】:Couldn't delete all rows of a table from Microsoft Access via OleDB in C# 【发布时间】:2015-11-14 20:09:42 【问题描述】:

我有一个方法,我打算让它从表中删除所有数据。然而,即使它被称为,删除根本没有发生。

下面是方法。 假设数据已经加载到表中。 表“CartListClone”有 5 列(不包括 ID)。您可以在连接字符串中看到的表派生自 Access。

public void deleteEverything() 
        OleDbConnection connect =
            new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; 
                Data Source=POSDB.accdb; 
                Persist Security Info = False");
        connect.Open();

        OleDbCommand command = new OleDbCommand();
        command.Connection = connect;
        command.CommandText = "DELETE * FROM CartListClone";

    

截至目前,我觉得问题出在方法上。 我在这里做错了什么吗? 非常感谢您的帮助。

更新:根据 sstan 的建议,下面是重写的方法。

public void deleteEverything() 
        OleDbConnection connect =
            new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; 
                Data Source=POSDB.accdb; 
                Persist Security Info = False");
        connect.Open();

        OleDbCommand command = new OleDbCommand("DELETE * FROM CartListClone");
        command.Connection = connect;
        command.ExecuteNonQuery();
    

【问题讨论】:

【参考方案1】:

您永远不会执行 command 对象。你最后错过了这一行:

command.ExecuteNonQuery();

【讨论】:

以上是关于无法通过 C# 中的 OleDB 从 Microsoft Access 中删除表的所有行的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 C# oledb 将记录插入 MS Access

C#如何通过OleDb更新Excel中的数据

通过 Oledb c# 防止重复数据从 Excel 到 db

无法从 C# 中的 excel 文件中读取数值

C# Access OleDb 条件表达式中的数据类型不匹配

使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值