下面是一些代码:无法从数据库中获取列类型
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