下面是一些代碼:無法從數據庫中獲取列類型
OdbcConnection connection = new OdbcConnection(@"DRIVER={MySQL ODBC 5.1 Driver};SERVER=" + ip + ";DATABASE=db_name;USER=user;PASSWORD=" + dbPw + ";");
connection.Open();
string queryString = query;
OdbcCommand command = new OdbcCommand(queryString);
command.Connection = connection;
OdbcDataReader myReader = command.ExecuteReader();
int fieldsN = myReader.FieldCount;
StringBuilder sb = new StringBuilder();
while (myReader.Read())
{
for (int i = 0; i < fieldsN; i++)
{
sb.Append(myReader.GetString(i) + " ");
}
sb.Append(", ");
}
connection.Close();
//Console.WriteLine(sb.ToString());
此代碼工作正常查詢,如 「SELECT * FROM some_table」 或 「SELECT(的東西,something_else)FROM some_table。」
但是,當我使用「SHOW COLUMNS FROM some_table」時它失敗。
這是我得到的錯誤:
無法投類型的對象'System.DBNull爲鍵入「System.String」。
此錯誤發生在myReader.GetString()行的某處。
我試着創建一個if語句,檢查如果myReader.GetString(i)是System.DBNull無濟於事。無論我做什麼,總會犯錯。我不明白髮生了什麼事。
感謝您的幫助!
正是我需要的,謝謝。 – 2012-04-10 03:27:27