2013-12-20 63 views
1

爲了得到一個列的數據類型我使用下面的代碼在C#SQLite typeof()是否也適用於SQL?

System.Data.SQLite.SQLiteConnection con = new System.Data.SQLite.SQLiteConnection("Data Source=C:\\Users\\SaMax\\Documents\\CustomersDB.s3db; Version=3; FailIfMissing=True;"); 
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand("select typeof(Column_Name) from Table_Name;"); 
cmd.Connection = con; 

try 
{ 
    con.Open(); 
    string str = cmd.ExecuteScalar().ToString(); 
    con.Close(); 
    MessageBox.Show(str); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.ToString()); 
} 

它的工作原理。但是我想知道是否可以,並且還可以使用SQL和MySql。

回答

0

我在想,如果它是確定

很難說沒有知道你的意圖,但除非你是編碼的東西高度動態的機會是你已經知道前手是什麼的類型柱。你爲什麼運行這個查詢?

,並確定爲SQL

它不是標準的SQL,它是具體到SQLite的功能。其他SQL風格可能有類似的東西來獲取列的類型,但不能使用相同的SQL字符串,並期望它可以在任何數據庫上工作。

+0

我正在此查詢僅僅是爲了得到返回的字符串指定列 的數據類型。 – samaxI92

+0

好的。然後,您將不得不爲每個查詢的數據庫類型更改SQL。 – Vache

+0

謝謝你的回答。最後一個問題是:任何替代函數 sqlite typeof()在sql中存在,所以我可以對大多數數據庫使用相同的查詢? – samaxI92

0

對於SQL-Server

試試這個:

SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS where 
    TABLE_NAME='Product' and COLUMN_NAME='Id' 
相關問題