private static DataTable FillTable(TableName tname) { var dt = new SqlCmd(tname.Provider, $"SELECT TOP 1 * FROM {tname.FormalName}").FillDataTable(); dt.SetSchemaAndTableName(tname); var schema = new TableSchema(tname); dt.PrimaryKeys(schema.PrimaryKeys.Keys); foreach (IColumn column in schema.Columns) { DataColumn col = dt.Columns[column.ColumnName]; col.AllowDBNull = column.Nullable; col.AutoIncrement = column.IsIdentity; //because string supports Unicode if (column.CType == CType.NVarChar || column.CType == CType.NChar) { if (column.Length > 0) { col.MaxLength = column.Length / 2; } } } if (dt.Rows.Count > 0) { dt.Rows[0].Delete(); } dt.AcceptChanges(); return(dt); }
public static DataSet LastOrCurrentTable(TableName tname, int rows = -1) { if (LastResult != null) { return(LastResult); } if (tname != null) { string sql; if (rows > 0) { sql = $"SELECT TOP {rows} * FROM {tname.FormalName}"; } else { sql = $"SELECT * FROM {tname.FormalName}"; } var dt = new SqlCmd(tname.Provider, sql).FillDataTable(); dt.SetSchemaAndTableName(tname); return(dt.DataSet); } return(null); }