protected virtual DataTable BuildSchemaTable(Boolean withGeometryColumn) { using (IDbConnection conn = DbUtility.CreateConnection(ConnectionString)) using (IDbCommand cmd = DbUtility.CreateCommand()) { cmd.CommandText = string.Format("SELECT * FROM {0} ", QualifiedTableName); cmd.CommandType = CommandType.Text; cmd.Connection = conn; IDbDataAdapter da = DbUtility.CreateAdapter(cmd); DataSet ds = new DataSet(); da.FillSchema(ds, SchemaType.Source); DataTable dt = ds.Tables[0]; //remove geometry column from schema if (!withGeometryColumn) { dt.Columns.Remove(GeometryColumn); } return(dt); } }