Example #1
0
        public static IEnumerable <TBColumn> GetColumns(DBSource dbSource, string dbName, string tbid, string tbName)
        {
            var tb = ExecuteDBTable(dbSource, dbName, SQLHelperConsts.GetColumns, new SqlParameter("@id", tbid));
            //查主键
            var tb2 = GetKeys(dbSource, dbName, tbName);
            //查自增键
            string idColumnName = GetIdColumName(dbSource, dbName, tbName);
            //描述
            DataTable tbDesc = GetTableColsDescription(dbSource, dbName, tbName);

            for (int i = 0; i < tb.Rows.Count; i++)
            {
                var y = (from x in tbDesc.AsEnumerable()
                         where string.Equals((string)x["ColumnName"], (string)tb.Rows[i]["name"], StringComparison.OrdinalIgnoreCase)
                         select x["Description"]).FirstOrDefault();
                yield return(new TBColumn
                {
                    IsKey = (tb2.AsEnumerable()).FirstOrDefault(p => p[0].ToString().Equals(tb.Rows[i]["name"].ToString(), StringComparison.OrdinalIgnoreCase)) != null,
                    Length = int.Parse(tb.Rows[i]["length"].ToString()),
                    Name = tb.Rows[i]["name"].ToString(),
                    TypeName = tb.Rows[i]["type"].ToString(),
                    IsID = string.Equals(idColumnName, tb.Rows[i]["name"].ToString()),
                    IsNullAble = tb.Rows[i]["isnullable"].ToString().Equals("1"),
                    prec = NumberHelper.CovertToInt(tb.Rows[i]["prec"]),
                    scale = NumberHelper.CovertToInt(tb.Rows[i]["scale"]),
                    Description = y == null?"":y.ToString(),
                });
            }
        }
Example #2
0
        public static IEnumerable <TBColumn> GetColumns(DBSource dbSource, string dbName, string tbName)
        {
            var tb           = ExecuteDBTable(dbSource, dbName, MySqlHelperConsts.GetColumns, new MySqlParameter("@db", dbName), new MySqlParameter("@tb", tbName));
            var idColumnName = GetAutoIncrementColName(dbSource, dbName, tbName);

            for (int i = 0; i < tb.Rows.Count; i++)
            {
                yield return(new TBColumn
                {
                    IsKey = string.Equals((string)tb.Rows[i]["column_key"], "pri", StringComparison.OrdinalIgnoreCase),
                    Length = int.Parse(string.IsNullOrEmpty(tb.Rows[i]["character_maximum_length"].ToString()) ? "0" : tb.Rows[i]["character_maximum_length"].ToString()),
                    Name = tb.Rows[i]["column_name"].ToString(),
                    TypeName = tb.Rows[i]["data_type"].ToString(),
                    IsID = string.Equals(idColumnName, tb.Rows[i]["column_name"].ToString()),
                    IsNullAble = tb.Rows[i]["is_nullable"].ToString().Equals("yes", StringComparison.OrdinalIgnoreCase),
                    prec = NumberHelper.CovertToInt(tb.Rows[i]["numeric_precision"]),
                    scale = NumberHelper.CovertToInt(tb.Rows[i]["numeric_scale"]),
                    Description = tb.Rows[i]["column_comment"].ToString(),
                });
            }
        }