私はこのような選択クエリでcase文を使用しています。SQLクエリのcase文のブール値
bool isActiveFlag = (bool)datareader["isActive"];
私は型キャストエラーを取得する - 私はado.netの 'のisActive' 列の値を読んだとき
Select col1, col2, isActive = case when col3 = 'abc' then 1 else 0 end, col4
from <tablename> where <some condition>.
。それはintとして戻り値です。
私は
Select col1, col2, isActive = case when col3 = 'abc' then 'true' else 'false' end, col4
from <tablename> where <some condition>.
にクエリを変更した場合は、この時間、戻り値が文字列であるので、私は、同じタイプのキャストエラーが発生します。基本的に私は、クエリでisActiveにブール値を代入するようにクエリを欲しいので、ブール値として読むことができます。
bool isActiveFlag = (bool)datareader["isActive"];
これに対処する方法はありますか。
値をintまたはstringとして読み込み、値をブール値に変換したくないです。
あなたが行うことができ
は、あなたの代わりに明示的なキャストのConvert.ToBooleanを使用してみましたか? – Waqas
@Waqasはい私は文字列として値を読み込み、Convert.ToBooleamを行うことができます。それは私のために働いています。私はブール値の変換を行うのではなく、ブール値として値を読み取る必要があります。 – user936405