> OleDbConnection cn = new OleDbConnection("Provider=VFPOLEDB;"+ > @"Data Source=C:\Program Files\Microsoft Visual FoxPro 9\Samples\Data\testdata.dbc"); > cn.Open(); > OleDbCommand cmd = new OleDbCommand("select * from employee", cn); > OleDbDataReader rdr = cmd.ExecuteReader(); > DataTable dt = rdr.GetSchemaTable(); > cn.Close(); > > foreach (DataRow row in dt.Rows) > { > Console.WriteLine("Name:{0},Type:{1},Length:{2},Islong:{3}", > row["ColumnName"], > row["DataType"], > row["ColumnSize"], > row["IsLong"]); > } >It turned out that the size is not returned for numeric field. So, I adjusted my framework to use your approach instead which works very well.