示例#1
0
        /// <summary>
        /// Gets the table with the specified name.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <returns>The table, or <c>null</c> if no table with that name exists.</returns>
        public override ITable GetTable(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            ITable table = null;

            // get name in correct casing
            name = SqlHelper.ExecuteScalar <string>("SELECT name FROM sys.tables WHERE name=@name",
                                                    SqlHelper.CreateParameter("name", name));
            if (name != null)
            {
                table = new DefaultTable(name);

                using (IRecordsReader reader = SqlHelper.ExecuteReader(
                           @"SELECT c.name AS Name, st.name AS DataType, c.max_length, c.is_nullable, c.is_identity
                          FROM sys.tables AS t
                            JOIN sys.columns AS c ON t.object_id = c.object_id
                            JOIN sys.schemas AS s ON s.schema_id = t.schema_id
                            JOIN sys.types AS ty ON ty.user_type_id = c.user_type_id
                            JOIN sys.types st ON ty.system_type_id = st.user_type_id
                          WHERE t.name = @name
                          ORDER BY c.column_id", SqlHelper.CreateParameter("name", name)))
                {
                    while (reader.Read())
                    {
                        table.AddField(table.CreateField(reader.GetString("Name"), GetType(reader)));
                    }
                }
            }

            return(table);
        }
示例#2
0
        void InitDB(String strCmpactDBFilePath, DbInteractiveArgs InitSqliteArgs)
        {
            try
            {
                DbInteractiveArgs args = InitSqliteArgs;
                args.Database = strCmpactDBFilePath;
                args.ThisDbConnection.ConnectionString = String.Format("data source={0}", strCmpactDBFilePath);

                bool b = this.Connect(args);
                if (b)
                {
                    List <String> AllTableNames = GetAllTableNames(args);
                    int           nIndex        = -1;
                    nIndex = (int)AllTableNames?.IndexOf(DefaultTable);
                    int nUpperIndex = (int)AllTableNames?.IndexOf(DefaultTable.ToUpper());
                    if (nIndex == -1 && nUpperIndex == -1)
                    {
                        CreateKeyValueTable(DefaultTable, args);
                    }

                    Console.WriteLine("已经成功连接数据库");
                }
                else
                {
                    Console.WriteLine("未能连接数据库");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// Loads Resource information into the datagrid
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [vmasanas]	04/10/2004	Created
        ///     [vmasanas}  25/03/2006  Modified to support new features
        /// </history>
        private void BindGrid()
        {
            Hashtable EditTable;
            Hashtable DefaultTable;

            EditTable    = LoadFile(rbMode.SelectedValue, "Edit");
            DefaultTable = LoadFile(rbMode.SelectedValue, "Default");

            // check edit table
            // if empty, just use default
            if (EditTable.Count == 0)
            {
                EditTable = DefaultTable;
            }
            else
            {
                //remove obsolete keys
                ArrayList ToBeDeleted = new ArrayList();
                foreach (string key in EditTable.Keys)
                {
                    if (!DefaultTable.Contains(key))
                    {
                        ToBeDeleted.Add(key);
                    }
                }
                if (ToBeDeleted.Count > 0)
                {
                    UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("Obsolete", LocalResourceFile), ModuleMessageType.YellowWarning);
                    foreach (string key in ToBeDeleted)
                    {
                        EditTable.Remove(key);
                    }
                }

                //add missing keys
                foreach (string key in DefaultTable.Keys)
                {
                    if (!EditTable.Contains(key))
                    {
                        EditTable.Add(key, DefaultTable[key]);
                    }
                    else
                    {
                        // Update default value
                        Pair p = (Pair)EditTable[key];
                        p.Second       = ((Pair)DefaultTable[key]).First;
                        EditTable[key] = p;
                    }
                }
            }

            SortedList s = new SortedList(EditTable);

            dgEditor.DataSource = s;
            dgEditor.DataBind();
        }
示例#4
0
        public static ITable GetTableInfo(Type type)
        {
            ITable table = null;

            if (type == typeof(ColumnTestEntityExts))
            {
                table = new DefaultTable("column_test_entity");
            }
            return(table);
        }
示例#5
0
        public Table <TEntity, TPrimaryKey> CreateTable <TEntity, TPrimaryKey>(
            IKeyInfo <TEntity, TPrimaryKey> primaryKey,
            IdentitySpecification <TEntity> identitySpecification,
            IDatabase database)
            where TEntity : class
        {
            Table <TEntity, TPrimaryKey> table =
                new DefaultTable <TEntity, TPrimaryKey>(
                    database,
                    primaryKey,
                    identitySpecification);

            return(table);
        }
 public DataTable GetCustomerTableForStatusUpdateOnly()
 {
     try
     {
         DefaultTable table = new DefaultTable(Entities.CUSTOMER.TABLE_NAME);
         table.Columns.Add(Entities.CUSTOMER.ID, typeof(int));
         table.Columns.Add(Entities.CUSTOMER.STATUS_ID, typeof(int));
         return(table);
     }
     catch (Exception ex)
     {
         Logger.getInstance().Error(MODULE_NAME, "GetCustomerTableForStatusUpdateOnly", ex);
         throw ex;
     }
 }
示例#7
0
        public static ITable GetTableInfo(Type type)
        {
            ITable table = null;

            if (type == typeof(TreeTestRootEntityExt))
            {
                table = new DefaultTable("tree_test_root");
            }
            else if (type == typeof(TreeTestOne2ManyEntityExt))
            {
                table = new DefaultTable("tree_test_one2many");
            }
            else if (type == typeof(TreeTestOne2OneEntityExt))
            {
                table = new DefaultTable("tree_test_one2one");
            }
            return(table);
        }
示例#8
0
        public static ITable GetTableInfo(Type type)
        {
            ITable table = null;

            if (type == typeof(InheritanceTestSuperEntityExt))
            {
                table = new DefaultTable("inheritance_test_super");
            }
            else if (type == typeof(InheritanceTestSubEntityAExt))
            {
                table = new DefaultTable("inheritance_test_suba");
            }
            else if (type == typeof(InheritanceTestSubEntityBExt))
            {
                table = new DefaultTable("inheritance_test_subb");
            }
            return(table);
        }
示例#9
0
        static void Main(string[] args)
        {
            var app = new PlaygroundController();

            var vasia = new HumanPlayer {
                Name = "Pidor ", PlayerGuid = Guid.NewGuid()
            };
            var petya = new HumanPlayer {
                Name = "Hui ", PlayerGuid = Guid.NewGuid()
            };

            var table = new DefaultTable {
                TableGuid = Guid.NewGuid(), TableName = "Table nahui "
            };

            app.AddTable(table);
            app.AddPlayerToTable(table.TableGuid, vasia);
            app.AddPlayerToTable(table.TableGuid, petya);
            app.StartTableGame(table.TableGuid);

            Console.ReadKey();
        }
示例#10
0
        private ITable GetTableInfo(Type regType, Type subType)
        {
            ITable table = GetTableInfoIfManagedClass(regType, subType);

            if (table == null)
            {
                object[] attributes = regType.GetCustomAttributes(false);
                foreach (object attribute in attributes)
                {
                    if (attribute is TableInfo)
                    {
                        var       tableInfo          = (TableInfo)attribute;
                        TableInfo annotatedTableInfo = (TableInfo)attribute;
                        table = new DefaultTable(annotatedTableInfo.TableName
                                                 , annotatedTableInfo.UpdateStrategy
                                                 , annotatedTableInfo.VerifyOnWriteStrategy
                                                 , annotatedTableInfo.DirtyCheckStrategy);
                    }
                }
            }
            UpdateToDefaultStrategiesIfNoneDefined(table);
            return(table);
        }