title: C# Read from .DBF files into a datatable
body: <p>I need to connect to a <code>.dbf</code> file in visual Studio using C# and populate a data table. Any ideas? I can currently view the tables in Visual Fox Pro 9.0</p>
  
  <p>Code I have tried and failed, keep getting </p>
  
  <blockquote>
    <p>External table is not in the expected format.</p>
  </blockquote>
  
  <pre><code>private OleDbConnection conn;
  private OleDbCommand cmd;
  private OleDbDataReader dr;
  private string sqlStr = "";
  private DataSet myDataSet;
  private OleDbDataAdapter myAdapter;
  
  
  void test2()
  {
      conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\PC1\Documents\\Visual FoxPro Projects\\;Extended Properties=DBASE IV;");
      conn.Open();
      sqlStr = "Select * from Clients.dbf";
      //Make a DataSet object
      myDataSet = new DataSet();
      //Using the OleDbDataAdapter execute the query
      myAdapter = new OleDbDataAdapter(sqlStr, conn);
      //Build the Update and Delete SQL Statements
      OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdapter);         
  
      //Fill the DataSet with the Table 'bookstock'
      myAdapter.Fill(myDataSet, "somename");
      // Get  a FileStream object
      FileStream myFs = new FileStream
            ("myXmlData.xml", FileMode.OpenOrCreate, FileAccess.Write);
      // Use the WriteXml method of DataSet object to write XML file from the   DataSet
      //  myDs.WriteXml(myFs);
      myFs.Close();
      conn.Close();
  }
  </code></pre>