Example #1
0
        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);
        }
Example #2
0
        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);
        }