public List <Fields> GetFields(string serverId, string dbName, string tableName)
        {
            List <Fields> fieldsList = new List <Model.Fields>();
            Servers       server     = ServersHelper.GetServers(serverId);

            if (server == null)
            {
                return(fieldsList);
            }

            using (SqlConnection conn = new SqlConnection(ServersHelper.GetConnectionString(serverId, dbName)))
            {
                conn.Open();
                string sql = string.Format(@"select a.name as f_name,b.name as t_name,[length],a.isnullable as is_null from 
                        sys.syscolumns a inner join sys.types b on b.user_type_id=a.xtype where object_id('{0}')=id order by a.colid", tableName);
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        fieldsList.Add(new Fields()
                        {
                            Name         = dr.GetString(0),
                            Type         = dr.GetString(1),
                            Length       = GetFieldLength(dr.GetString(1), dr.GetInt16(2)),
                            IsNull       = 1 == dr.GetInt32(3),
                            IsPrimaryKey = IsPrimaryKey(serverId, dbName, tableName, dr.GetString(0)),
                            IsIdentity   = IsIdentity(serverId, dbName, tableName, dr.GetString(0)),
                            NetType      = GetFieldType(dr.GetString(1), 1 == dr.GetInt32(3)),
                            SqlType      = GetFieldSqlType(dr.GetString(1)),
                            Note         = GetFieldNote(serverId, dbName, tableName, dr.GetString(0))
                        });
                    }
                    dr.Close();
                    dr.Dispose();
                }
            }
            return(fieldsList);
        }