2013-12-20 38 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' 
相关问题