Frage

Ich bin derzeit in einer Liste von Tabellen in einer SQL-Datenbank zu lesen und eine comboBox mit den Tabellennamen bevölkert. Ich möchte SQL-Ansichten in derselben Liste enthalten. Der sysobjects Typ für Tabellen ist ‚U‘ und für Ansichten ist es ‚V‘. Wie würde ich ändern, um die OdbcCommand Linie U und V abrufen? Danke.

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();
War es hilfreich?

Lösung

Versuchen:

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

Andere Tipps

Welche Version von SQL Server verwenden Sie? Wenn es etwas über SQL 2000 ist, nicht sysobjects verwenden, da es veraltet ist. Verwenden Sie sys.objects statt.

Auch sollten Sie wahrscheinlich SMO verwenden (SQL Server Management Objects) stattdessen Ihre eigene Abfrage zu schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top