2011-12-27 51 views
2

我試圖在datagridview vb.net中顯示我的表數據類型。以下是示例代碼:oracle查詢查看數據類型列表

 oradb = "Data Source=(DESCRIPTION=" _ 
     + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & txtServer1.Text & ")(PORT=" & port1.Value & ")))" _ 
     + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" & txtSID.Text & ")));" _ 
     + "User Id=" & txtUsername1.Text & ";" _ 
     + "Password=" & txtPassword1.Text 
     Dim connOracle As New OracleConnection(oradb) 

     Try 
      connOracle.Open() 
      connOracle.Close() 
     Catch ex As Exception 
      MessageBox.Show(ex.Message.ToString()) 
     Finally 
     End Try 

     SQL = "desc hr.employees" 
     myCommand1.Connection = connOracle 
     myCommand1.CommandText = SQL 
     myAdapter1.SelectCommand = myCommand1 
     myAdapter1.Fill(myTablePreview) 
     DataGridView1.DataSource = myTablePreview 

我嘗試使用用戶名「system」登錄。當我運行此代碼時,出現錯誤消息「ORA-00900:無效的SQL語句」

有沒有我的查詢出錯? 請幫助。謝謝.....

回答

2

DESC(描述)是SQL * Plus命令,不是SQL動詞。 SQL * Plus是SQL的前端工具,因此它增加了一些自己的命令,這就是其中之一。使用OLE DB時必須堅持使用SQL。

如果你想在一個客戶端程序該數據時,你可能會想嘗試類似:

select * 
from all_tab_columns 
where table_name = '<your table name>' 

或像這樣:

Select COLUMN_NAME 
from user_tab_columns 
where table_name='EMP' 

這是純(Oracle)的SQL,你可以在SQL * Plus中進行試驗,直到獲得所需的一組列。

Devian Yudha,

+0

是啊,這完全明白我的意思,但放時在該查詢我的代碼,我有個小問題。 VB.Net無法識別<'>標誌。該查詢現在成爲評論。 那麼,如何解決這個問題? 感謝任何幫助.. – Flashidkz 2011-12-29 23:21:43

+1

<你的表名>,是你的意思嗎? 你可以用你的餐桌來改變它。 select * from all_tab_columns where table_name ='DEPT' – DevYudh 2011-12-30 01:04:34

+0

不,我的意思是< ' >在表名前後簽名 – Flashidkz 2011-12-30 05:54:03

4

DESC是一個SQL PLus命令。

你可能想要做一個實際的查詢,像

select * 
from all_tab_cols 
where table_name = 'EMP' 
+0

yeahh .. 這就是我的意思是:d 謝謝蘭迪... – Flashidkz 2011-12-28 00:11:26