Вопрос

В настоящее время я читаю список таблиц в базе данных SQL и заполняю поле со списком именами таблиц.Я хочу включить представления SQL в тот же список.Тип sysobjects для таблиц - "U", а для представлений - "V".Как бы я изменил строку OdbcCommand, чтобы получить как U, так и V?Спасибо.

OdbcConnection cn=getConnection(); 
OdbcCommand cmdList; 
cmdList = new OdbcCommand("select name, user_name(uid) from sysobjects where type='U'",cn);
cn.Open();

        OdbcDataReader reader = cmdList.ExecuteReader();
        while (reader.Read())
        {
            for (int i=0;i<reader.FieldCount;i++)
            {
                if (!reader.IsDBNull(i))
                {
                    if (reader.GetName(i).ToUpper()=="NAME")
                    {
                            comboBoxTables.Items.Add(reader.GetString(i));
                    }
                }
            }
        }
cn.Close();
Это было полезно?

Решение

Попробуй:

"... where type='U' or type='V'"

Другие советы

Какую версию SQL Server вы используете? Если это что-то после Sql 2000, не используйте sysobjects, потому что это устарело. Вместо этого используйте sys.objects.

Также вам, вероятно, следует использовать SMO (объекты управления SQL Server) вместо того, чтобы писать собственный запрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top