C # Чтение таблиц и представлений SQL - PullRequest
1 голос
/ 11 марта 2009

В настоящее время я читаю список таблиц в базе данных SQL и заполняю comboBox именами таблиц. Я хочу включить SQL Views в тот же список. Тип 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();

Ответы [ 2 ]

4 голосов
/ 11 марта 2009

Попробуйте:

"... where type='U' or type='V'"
1 голос
/ 11 марта 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...