Question

Je suis en train de lire une liste de tables dans une base de données SQL et de remplir une liste déroulante avec les noms de tables. Je veux inclure des vues SQL dans la même liste. Le type de sysobjects pour les tables est 'U' et pour les vues, c'est 'V'. Comment pourrais-je modifier la ligne OdbcCommand pour récupérer U et V? Merci.

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();
Était-ce utile?

La solution

Essayez:

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

Autres conseils

Quelle version de SQL Server utilisez-vous? S'il est antérieur à Sql 2000, n'utilisez pas sysobjects car il est obsolète. Utilisez sys.objects à la place.

Vous devriez également probablement utiliser SMO (SQL Server Management Objects) au lieu d'écrire votre propre requête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top