C#读取SQL表和视图

时间:2009-03-10 23:49:34

标签: c# sql views

我正在读取SQL数据库中的表列表,并使用表名填充comboBox。我想在同一个列表中包含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();

2 个答案:

答案 0 :(得分:4)

尝试:

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

答案 1 :(得分:1)

您使用的是哪个版本的SQL Server?如果它是Sql 2000之后的任何内容,请不要使用sysobjects,因为它已被弃用。改为使用sys.objects。

此外,您应该使用SMO(SQL Server管理对象)而不是编写自己的查询。