前提
MySql.Data.MySqlClientにて検索したdecimal型のデータをfloat型に変換したいです。
しかし、正常に変換できません。
お知恵を頂けたらと思います。
追記。
下記のreader[0]、reader[1]のデータ型を確認しましたところ「System.Decimal」でした。
該当のソースコード
MySQL
1CREATE TABLE `position` ( 2 `id` int(11) NOT NULL, 3 `x` decimal(10, 6) NOT NULL, 4 `z` decimal(10, 6) NOT NULL, 5 `updateitme` datetime DEFAULT NULL, 6 PRIMARY KEY (`id`) 7) ENGINE=InnoDB DEFAULT CHARSET=latin1;
C#
1string sql = "select x, z from position where id=1"; 2MySqlCommand com = new MySqlCommand(sql, con); 3 4MySqlDataReader reader = com.ExecuteReader(); 5reader.Read(); 6 7float positionX = (float)reader[0]; //ここで実行時エラー 8float positionZ = (float)reader[1];
実行時エラー
InvalidCastException: Specified cast is not valid.
試したこと
float.Parse()でも正常に変換できませんでした。
コンパイル時にエラーが発生します。
C#
1string sql = "select x, z from position where id=1"; 2MySqlCommand com = new MySqlCommand(sql, con); 3 4MySqlDataReader reader = com.ExecuteReader(); 5reader.Read(); 6 7float positionX = float.Parse(reader[0]); //ここでコンパイルエラー 8float positionZ = float.Parse(reader[1]);
error CS1503: Argument 1: cannot convert from 'object' to 'System.ReadOnlySpan<char>'
回答2件
あなたの回答
tips
プレビュー