 <p>I have finished this, just to let anyone know who may have this problem in the future. It turns out the reason there was nothing being taken in was because ADO tries to determine a column type. If other values in this column are not of said type, it removes them completely.</p> <p>To counter this, you need to create a schema.ini file, like so:</p> <pre><code>StreamWriter writer = new StreamWriter(File.Create(dir + "\\schema.ini")); writer.WriteLine("[" + fileToBeRead + "]"); writer.WriteLine("ColNameHeader = False"); writer.WriteLine("Format = CSVDelimited"); writer.WriteLine("CharacterSet=ANSI"); int iColCount = dTable.Columns.Count + 1; for (int i = 1; i &lt; iColCount; i++) { writer.WriteLine("Col" + i + "=Col" + i + "Name Char Width 20"); } //writer.WriteLine("Col1=Col1Name Char Width 20"); //writer.WriteLine("Col2=Col1Name Char Width 20"); //etc. writer.Close(); </code></pre> <p>Thanks for everyone's suggestions!</p>