ここにいくつかのコードがあります:
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 * FROMsome_table」や「SELECT(something、something_else)FROMsome_table」などのクエリで正常に機能します。
ただし、「SHOWCOLUMNSFROMsome_table」を使用すると失敗します。
これが私が得るエラーです:
タイプ'System.DBNull'のオブジェクトをタイプ'System.String'にキャストできません。
このエラーは、myReader.GetString()行のどこかで発生します。
myReader.GetString(i)がSystem.DBNullであるかどうかをチェックするifステートメントを作成してみました。私が何をしても、それは常にエラーになります。何が起こっているのかわかりません。
助けてくれてありがとう!