문제

현재 SQL 데이터베이스의 테이블 목록을 읽고 테이블 이름으로 콤보 박스를 채우고 있습니다. 같은 목록에 SQL보기를 포함하고 싶습니다. 테이블의 sysobjects 유형은 'u'이며보기의 경우 'V'입니다. U와 V를 모두 검색하기 위해 ODBCCommand 라인을 어떻게 변경합니까? 감사.

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 서버를 사용하고 있습니까? SQL 2000이 지나면 sysobjects를 사용하지 않으므로 사용하지 마십시오. 대신 sys.objects를 사용하십시오.

또한 자체 쿼리를 작성하는 대신 SMO (SQL Server Management Objects)를 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top