OleDbException:记录已删除.在任何记录中都找不到搜索关键字

本文关键字:记录 找不到 搜索 关键字 删除 OleDbException 任何 | 更新日期: 2024-10-24 10:35:05

我正试图通过C#方法导入带有一个表的DBF文件。该代码适用于大多数文件,但其中一个文件似乎已损坏。我不确定是代码页差异导致它损坏还是其他什么,如果有人有任何见解,请帮助!

 public static void LoadDbf(DataTable destinationDataTable, string DbfDbPath, string DbfDbName)
    {
        destinationDataTable.Clear();
        using (var CS = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbfDbPath + ";Extended Properties=dBASE III;"))
        {
            try
            {
                string selectTableSyntax = @"SELECT * FROM " + DbfDbName;
                OleDbDataAdapter adapter = new OleDbDataAdapter(selectTableSyntax, CS);
                adapter.Fill(destinationDataTable);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Pogreška prilikom učitavanja baze " + DbfDbName + ".'r'n'r'n" + ex.ToString());
            }
            finally
            {
                CS.Close();
            }
        }
    }

OleDbException:记录已删除.在任何记录中都找不到搜索关键字

在本文的帮助下修复了它:

http://www.codeproject.com/Articles/24247/Load-a-DBF-into-a-DataTable

基本上,它通过BinaryReader加载数据,然后将其存储到DataTable 中

具有一个类和一个方法的非常优雅的代码

dataTable=ParseDBF.ReadDBF(完整路径);