
開発環境VisualStudio.NET 開発言語C#です。
データベースに接続しデータを取り出すコードの一部ですが「指定されたキャストは有効ではありません。」と表示されます。
while( sqlReader14.Read() )
{
int empTD2 = (int)sqlReader14["LineNumber"];
if(empTD2 == time)
{
int empFD = (int)sqlReader14["DepartureTimeInt"];
int empED = (int)sqlReader14["ArrivalTimeInt"];
string empFFD = sqlReader14["DepartureTime"].ToString();
string empEED = sqlReader14["ArrivalTime"].ToString();
if(950 >= ViaTime)
{
TimeGet4 = empFFD;
TimeGet5 = empEED;
goto Labelc;
}
}
}
Labelc:;
実行しソフトを操作するとint empFD = (int)sqlReader14["DepartureTimeInt"];でエラーが発生しタイトルのようなメッセージが出ます。いろいろ試行錯誤しましたが解決しません。どうかよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
sqlReader14["DepartureTimeInt"].GetType().ToString()
の内容を実行時に、デバッガで、調べましょう。
そして、本当にint型でのキャストでよいのか
調べましょう。
sqlReader14[
の内部で例外が発生しているケースでは、
No1さんのような対策をしてください。
本当にNo1さんの対策でよいのかを調べるために
sqlReader14.IsDBNull(●)
の部分の評価値のbool値をデバッガで
実行時で除いてみましょう。
開発対象のシステムでのDBから取得される型
がint, string, DateTimeなどに限定されるようで
あれば、IsDBNullのチェックおよび、
.GetType().ToString()の型の判定や、
データの取得ロジックなどの共通化を
検討しましょう。
リフレクションや、VS2005以降のGeneric等を
用いて自動的に、Beanに結果が格納されるような
もちろん、今回の質問事項も解決されて、吸収された
フレームワークを作ってしまいましょう。
以上。
No.1
- 回答日時:
sqlReader14["DepartureTimeInt"]がnullである可能性があります
int empFD;
if (!sqlReader14.IsDBNull(●)){
empFD = (int)sqlReader14["DepartureTimeInt"];
}
などの対策が必要です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
教えて!gooグレードポイントがdポイントに変わります!
dアカウント連携を行っていただくと、グレードに応じて「dポイント」が進呈されるようになります。
-
c# 文字列の最後から1文字削除したい
C言語・C++・C#
-
「指定されたキャストは有効ではありません」
Microsoft ASP
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
4
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
5
C#にて別クラスの関数を使いたい
C言語・C++・C#
-
6
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
7
CloseとDisposeの違い
Visual Basic(VBA)
-
8
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
9
C# 配列の変数宣言について。
C言語・C++・C#
-
10
フォームの再読み込み
Visual Basic(VBA)
-
11
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
12
オブジェクト参照がオブジェクト インスタンスに設定されていません というエラーについて
Microsoft ASP
-
13
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
14
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
15
C#でほかのファイルにある自作クラスを使用したい場合
その他(プログラミング・Web制作)
-
16
C#「オブジェクト参照が必要です」(初心者)
その他(プログラミング・Web制作)
-
17
共通モジュールでDBへの接続と利用方法
Visual Basic(VBA)
-
18
データベースのINT型項目にNULLはNG?
MySQL
-
19
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
20
MS SQLServer のSQLで文字列の前にN:
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
C言語での引数の省略方法
-
5
「指定されたキャストは有効で...
-
6
比較回数と交換回数表示について
-
7
因数分解を行うプログラムについて
-
8
数値を入力して1からその数値ま...
-
9
課題でつまってます・・・
-
10
実数の整数部,小数部の取得
-
11
C言語の配列をC++のvectorに高...
-
12
ラップ関数とはどんなものですか?
-
13
c言語 何をしているのかがわか...
-
14
C言語、行列の積を求めるプログ...
-
15
【C++】関数ポインタの使い方
-
16
C++でvectorにテキストファイル...
-
17
数字列を3桁ごとにカンマで区切...
-
18
C言語で分からないところがあり...
-
19
ファイルから読みこむ方法
-
20
return 1L
おすすめ情報
公式facebook
公式twitter