Skip to content

付録E トラブルシューティング集

この付録は、研修中によく起きる トラブルと対処 を症状別にまとめた逆引き辞典です。 エラーが出たときは、すぐに答えを探すのではなく、まず次の順序で確認してください。

[1] エラーメッセージを最後まで読む
[2] どのファイル・どの行で起きているか確認する
[3] 直前に変更した箇所を確認する
[4] テキストの手順と比較する
[5] それでも分からなければ講師に質問する

エラーは、プログラミング学習における 重要な手がかり です。慌てずに 1 つずつ確認していきましょう。

他の付録との役割分担

付録内容
付録 A-8詰まったときの動き方、質問の作法
付録 BVS の 機能と操作の正式手順
付録 CGit の コマンドと初期設定
付録 E(本付録)症状からの逆引き対処

質問するときの伝え方は 付録 A-8 を参照してください(本付録には記載しません)。


下表の症状の中から、自分の状況に近いものを選んでください。

症状セクション
新規作成で目的のテンプレートが見つからない / Program.cs がないE-1
コンソールアプリの画面がすぐ閉じるE-2
コードに赤い波線が出る / エラー一覧に大量のエラーが出るE-3
症状セクション
NuGet パッケージが追加できない / using Oracle.ManagedDataAccess.Client; で赤波線E-4
症状セクション
C# から Oracle Database に接続できない(ORA-01017 / ORA-12541 など)E-5
employees 表 / departments 表が見つからない(ORA-00942)E-6
症状セクション
ボタンを押しても処理が動かないE-7
DataGridView に何も表示されないE-8
Form1.Designer.cs でエラーになった / デザイナーが開けないE-9
実行しようとすると「アプリケーション制御ポリシー」でブロックされるE-10
症状セクション
MVC の View が表示されない / 404 Not FoundE-11
appsettings.json 編集後にエラーE-12
症状セクション
git push でエラーになるE-13
bin / objgit status に出る、または Git に入ってしまったE-14

E-1 プロジェクトテンプレートが見つからない / Program.cs がない

Section titled “E-1 プロジェクトテンプレートが見つからない / Program.cs がない”

症状

  • 新規プロジェクト画面で、目的のテンプレートが検索しても出てこない
  • プロジェクトを作ったが Program.cs が見当たらない
  • 想定と違う画面が表示される

確認

  • 検索キーワードが正しいか(コンソール / Windows フォーム / MVC)
  • .NET Framework ではなく .NET のテンプレートを選んでいるか(コンソール アプリの場合)
  • 必要なワークロードが入っているか(.NET デスクトップ開発 / ASP.NET と Web 開発)
  • ソリューションエクスプローラーで プロジェクトを展開 したか(Program.cs は展開しないと見えない)

対処

[1] 検索ボックスに正確なキーワードを入れ直す
[2] 出てこなければ Visual Studio Installer でワークロードを確認(付録 B-2)
[3] 不足していれば講師に相談(追加に時間がかかる)

関連

  • 付録 B-2「初回セットアップ(ワークロード確認)」
  • 付録 B-4「プロジェクトを新規作成する」

E-2 コンソールアプリの画面がすぐ閉じる

Section titled “E-2 コンソールアプリの画面がすぐ閉じる”

症状

  • コンソールアプリを実行すると、結果を見る前に画面が閉じてしまう

確認

  • F5(デバッグ実行)ではなく Ctrl + F5(デバッグなしで実行)で起動したか
  • 最後で入力待ち(Console.ReadLine();)していないか

対処

まずは Ctrl + F5 で実行してみてください。デバッグなし実行は、終了時に「続行するには何かキーを押してください …」が表示されます。

それでも閉じてしまう場合、最後に入力待ちを 1 行追加します。

Console.WriteLine("終了するには Enter キーを押してください。");
Console.ReadLine();

関連

  • 付録 D-3「実行・ビルド」(F5Ctrl + F5 の使い分け)

E-3 赤い波線が消えない / エラー一覧に大量のエラー

Section titled “E-3 赤い波線が消えない / エラー一覧に大量のエラー”

症状

  • コードに赤い波線が出ている
  • ビルドすると エラー一覧に大量のエラー が表示される

確認(赤い波線のよくある原因)

- セミコロン(;)が抜けている
- 中かっこ {} の対応が崩れている
- 変数名・クラス名のスペル違い(C# は大文字小文字を区別)
- using が不足している(E-4 参照)
- 全角スペースが混じっている

対処

[1] 赤波線の上にマウスを置き、ヒントを読む
[2] エラー一覧では「最初の 1 つ」から直す
→ 1 つの誤りで連鎖して大量のエラーになることが多い
[3] 修正候補があるなら Ctrl + . を試す(クイックアクション)
[4] それでも解決しなければ、直前に変更した箇所を Ctrl + Z で戻して切り分け

エラーが 50 件出ても、原因は 1 つかもしれません

中かっこを 1 つ閉じ忘れただけで、その後のすべての行がエラー扱いになることがあります。最初のエラー を直して再ビルドすると、ほとんどが消えるパターンが多いです。

関連

  • 付録 B-9「VS のフィードバック(エラー一覧・赤い波線・クイックアクション)」
  • 付録 D-4「コード整形・コメント化・名前変更」(Ctrl + .)

E-4 NuGet パッケージが追加できない / using で赤波線

Section titled “E-4 NuGet パッケージが追加できない / using で赤波線”

症状

  • NuGet で Oracle.ManagedDataAccess.Core を検索しても見つからない / インストールできない
  • using Oracle.ManagedDataAccess.Client; の行に 赤い波線 が出る

確認

  • インターネット(または社内 NuGet ミラー)に接続できているか
  • パッケージ名のスペルが正しいか(Core の有無に注意)
  • プロジェクトを 右クリック で開いた([NuGet パッケージの管理])
  • インストール後、ビルドし直したか(Ctrl + Shift + B)

対処

[1] パッケージ名 "Oracle.ManagedDataAccess.Core" を コピー して検索
[2] [参照] タブを選択(初期表示は [インストール済み] のことがある)
[3] インストール後、出力ウィンドウで「インストールが完了しました」を確認
[4] using の赤波線が残るときは、いったんソリューションを閉じて開き直す
[5] それでもダメなら NuGet パッケージの「復元」を試す(ソリューション右クリック)

関連

  • 付録 B-7「NuGet パッケージの追加と復元」
  • 第 16 章 16-3(NuGet 追加の初出)

E-5 Oracle Database に接続できない

Section titled “E-5 Oracle Database に接続できない”

症状

  • C# から OracleConnection.Open() で例外
  • MVC の一覧画面に赤いエラーメッセージ
  • 代表的な ORA エラー番号:ORA-01017 / ORA-12541 / ORA-12514

確認

- SQL*Plus(または A5:SQL Mk-2)では接続できるか
- Oracle Database のサービスは起動しているか
- 接続文字列(ユーザー名・パスワード・サービス名)が正しいか
- Forms / Web で使う接続文字列の場所:
- Forms: コードの const string ConnectionString
- MVC : appsettings.json の ConnectionStrings:OracleDb

対処

まず SQL*Plus で接続 して、Oracle 側に問題がないか切り分けてください。

Terminal window
sqlplus pingt/oracle@//localhost:1521/XEPDB1
エラー番号意味対処
ORA-01017ユーザー / パスワード違い接続文字列のスペルを確認
ORA-12541リスナーが起動していないWindows サービスで Oracle リスナーを確認
ORA-12514サービス名違いXEPDB1 のスペル / 環境のサービス名を確認

「SQL*Plus で接続できない」場合、C# からも接続できません。Oracle 側の問題なので、まずそちらを解決してください。

関連

  • 第 16 章 16-7「ORA エラー番号と対処」
  • 付録 B-11(MVC の appsettings.json の場所)

E-6 employees 表が見つからない(ORA-00942)

Section titled “E-6 employees 表が見つからない(ORA-00942)”

症状

  • SQL を実行すると ORA-00942: 表またはビューが存在しません
  • C# から SELECT を実行すると OracleExceptionORA-00942

確認

  • pingt ユーザー で接続しているか(別ユーザーには employees がない)
  • 表名のスペル(EMPLOYEESDEPARTMENTS)が正しいか
  • SQL*Plus で次が表示されるか
SELECT table_name FROM user_tables;

対処

  • pingt ユーザーに EMPLOYEES / DEPARTMENTS が表示されない場合 → SQL 研修のテーブル作成スクリプトを再実行する必要あり、講師に相談
  • 表示される場合 → C# 側の SQL のスペルや接続ユーザーを確認

関連

  • 第 16 章 16-7「ORA エラー番号と対処」
  • 章間整合ルール「1-3 employees テーブルの社員データ」(SQL 研修整合)

E-7 ボタンを押しても処理が動かない

Section titled “E-7 ボタンを押しても処理が動かない”

症状

  • フォームのボタンをクリックしても、何も起きない
  • MessageBox.Show を入れたのに表示されない

確認

  • ボタンの Click イベントハンドラー が作成されているか(Form1.Designer.cs+= new EventHandler(...) の行があるか)
  • イベントハンドラー内に処理が 書かれているか(空のメソッドだけ作って終わっていないか)
  • 正しいボタン を押しているか(複数ボタンがある場合)
  • ボタンの先頭に ブレークポイント(F9)を置いて F5 で止まるか

対処

[1] ボタンクリック処理の先頭に F9 でブレークポイント
[2] F5 でデバッグ実行 → ボタンクリック
[3] ブレークポイントで止まらない場合 → イベントが関連付いていない
→ デザイナーでボタンを選択 → プロパティウィンドウの「⚡(イベント)」タブ
→ Click 欄のメソッド名を確認
[4] 止まる場合 → 処理の中身に問題あり、ステップ実行(F10)で追う

関連

  • 付録 B-10「Windows フォームデザイナーの注意点」
  • 第 19 章「ボタンと TextBox の基本」

E-8 DataGridView に何も表示されない

Section titled “E-8 DataGridView に何も表示されない”

症状

  • ボタンを押しても DataGridView が空のまま
  • ヘッダーすら出ない

確認

  • dataGridViewEmployees.DataSource = ...; を実行しているか
  • 渡している DataTable / List<T>行が入っているか(Rows.Count を確認)
  • SQL の検索条件で 0 件 ではないか
  • LoadAllEmployees() などの DB 取得メソッドが例外を投げていないか
  • ボタンの Click イベントが関連付いているか(E-7 を参照)

対処

件数を画面に表示して切り分けます。

labelStatus.Text = $"{table.Rows.Count}件表示しました。";
  • 件数が 0 → SQL や検索条件を確認
  • 件数が 1 以上なのに表示されないDataSource の設定行を確認、列の自動生成設定を確認
  • 件数を表示する前に例外で止まる → try-catchMessageBox.Show(ex.Message) してメッセージを見る

関連

  • 第 23 章「DataGridView と OracleDataAdapter」
  • E-5「Oracle に接続できない」(DB アクセスで例外が出ているケース)

E-9 Form1.Designer.cs でエラーになった

Section titled “E-9 Form1.Designer.cs でエラーになった”

症状

  • フォームデザイナーが開けない / 「デザイナーをロードできませんでした」
  • Form1.Designer.cs でビルドエラー

よくある原因

- Designer.cs を直接編集してしまった
- フォーム上のコントロールを削除したが、コード側にイベントが残っている
- コントロールの Name を変更した後、コード側が古い名前のまま

対処

  1. 自分で Designer.cs を大きく修正しない(壊した状態を上書きしてさらに悪化することが多い)
  2. 直前の変更を Ctrl + Z で戻せるなら戻す
  3. Git で前回コミット時点まで戻す方法もあるが、講師に相談 してから
  4. デザイナーが開けないだけなら、コード側で該当する行を 1 つずつ修正できる場合もある

イベントだけ残ったケースの例

ボタンを削除したのに、Form1.Designer.csthis.button1.Click += new EventHandler(this.button1_Click); のような行が残っていることがあります。該当行を削除Form1.csbutton1_Click メソッドも未使用なら削除。

関連

  • 付録 B-10「Windows フォームデザイナーの注意点」(Designer.cs を触らないルール)

E-10 実行しようとすると「アプリケーション制御ポリシー」でブロックされる

Section titled “E-10 実行しようとすると「アプリケーション制御ポリシー」でブロックされる”

症状

  • ビルドは成功するのに、実行(F5 / Ctrl + F5)すると 「アプリケーション制御ポリシー」 によってブロックされた、というメッセージで起動しない
  • アプリのロジックやコードとは関係なく、起動そのものができない

これはコードの問題ではありません

Windows の アプリケーション制御(AppLocker / スマート アプリ コントロールなど) が、ビルドした実行ファイル(...\bin\Debug\net8.0-windows\<プロジェクト名>.exe)の起動をブロックしている、環境・セキュリティポリシー側の事象です。C# のコードや警告(CS8618 など)とは無関係です。

確認

- プロジェクトがネットワークドライブ(Z: や \\サーバー\... )の上に置かれていないか
- イベント ビューアー → Windows ログ → Application(または AppLocker)に
ブロックされた exe のパス付きの記録が出ていないか

対処

状況対処
ネットワークドライブ上で実行しているプロジェクトを ローカルの C:\Training\CSharp\ 配下 に置いてビルド・実行する(付録 C のフォルダ構成)
ローカルでもブロックされる企業ポリシーで未署名の実行ファイルが制限されている可能性。研修フォルダ配下の実行許可を 講師・管理者に依頼

警告(CS8618)とは別物です

string プロパティに出る警告(Nullable を disable にし忘れ)を消しても、このブロックは解消しません。逆に、このブロックを解消すれば警告が残っていてもアプリは動きます。切り分けて対処してください(警告の対処は第 24 章「よくあるつまずき」)。

関連

  • 付録 C「Git のインストールと提出ルール」(作業フォルダは C:\Training\CSharp\ 配下)
  • 第 24 章「よくあるつまずき」(CS8618 警告との切り分け)

E-11 MVC の View が表示されない / 404 Not Found

Section titled “E-11 MVC の View が表示されない / 404 Not Found”

症状

  • ブラウザで URL を叩いても、404 Not Found または「ビューが見つかりません」
  • Controller は作ったのに、画面が出ない

確認(規約の対応)

URL : /Employee/Index
Controller : Controllers/EmployeeController.cs
public IActionResult Index() { return View(); }
View ファイル : Views/Employee/Index.cshtml
  • Controller の クラス名は <名前>Controller(末尾に Controller)になっているか
  • View のフォルダ名は Controller 名から Controller を除いたもの と一致しているか(例:EmployeeControllerViews/Employee/)
  • View のファイル名は アクション名 + .cshtml(例:Index.cshtml)
  • View 先頭の @model 宣言と Controller が渡している型が一致しているか

対処

[1] アドレスバーで URL を確認(/Employee/Index になっているか)
[2] Controllers / Views フォルダの構造を確認
[3] 名前が一致していない場合、フォルダ名・ファイル名・クラス名を修正
[4] それでも 404 のままなら、Controller を保存して再ビルド(Ctrl + Shift + B)

関連

  • 付録 B-11「ASP.NET Core MVC プロジェクトの注意点」
  • 第 26 章 26-3「URL ルーティング」

E-12 appsettings.json 編集後にエラー

Section titled “E-12 appsettings.json 編集後にエラー”

症状

  • appsettings.json を編集した後、アプリ起動時に例外
  • JsonReaderException や「設定ファイルの読み込みに失敗しました」

よくある原因(JSON 構文エラー)

- カンマ , が足りない / 余分にある(末尾カンマは NG)
- 中かっこ {} の対応が崩れている
- 文字列のダブルクォーテーション " が片方だけ
- バックスラッシュ \ をエスケープしていない(Data Source 系)

対処

正しい構造の例:

{
"ConnectionStrings": {
"OracleDb": "User Id=pingt;Password=oracle;Data Source=localhost:1521/XEPDB1;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
[1] VS の json エディターで赤い波線が出ているはず → そこを修正
[2] 各 { の対応する } を目で追う
[3] カンマの位置を確認(キーと値のペアの末尾、ただし最後は不要)

関連

  • 第 28 章 28-3「appsettings.json に接続文字列を書く」

症状

  • git push を実行するとエラーで終わる

よくある原因

エラー文の例原因
Could not resolve host / ネットワーク系ファイルサーバーに接続できない
Authentication failed / Permission denied認証に失敗
Updates were rejected / non-fast-forward別の変更が先に入っている
bad object / corruptリポジトリ破損の可能性

対処

[1] エラーメッセージを最後まで読む
[2] ネットワーク系なら、LAN 接続を確認して 1 回だけ再試行
[3] 認証系・破損系・rejected 系は、自己判断で繰り返さず講師に相談

同じコマンドを 5 回繰り返しても結果は同じ(または悪化)です。 git reset --hard のような 破壊的なコマンドを自分で試さない でください。

関連

  • 付録 C-5「push でエラーが出たら」(対処詳細)
  • 付録 A-8「困ったときの動き方」(質問の作法)

E-14 bin / obj が git status に出る、または Git に入ってしまった

Section titled “E-14 bin / obj が git status に出る、または Git に入ってしまった”

症状

  • git statusbin/obj/ が表示される
  • すでに git add / git commit してしまった

確認

  • .gitignore ファイルがリポジトリのルートにあるか
  • .gitignorebin/ / obj/ / .vs/ が書かれているか

対処

ケース A:git add する前

.gitignore に次が含まれていれば、git status に出なくなります。

bin/
obj/
.vs/

なければ、講師に確認の上、追記してください。

ケース B:すでに git add / git commit してしまった

[1] 自分で git rm -r --cached bin/ obj/ を試さず、まず講師に相談
[2] 影響範囲(自分のリポジトリだけか、共有先にも push したか)を伝える
[3] 講師の指示に従って復旧

いったんコミット履歴に入った bin/obj/ は、.gitignore を後から書いても 自動では消えません

関連

  • 付録 C-4「ビルド成果物の扱い」

  • トラブル時は エラーメッセージを最後まで読む → どこで起きたか確認 → 直前の変更を確認 → テキストと比較 → 講師に相談 の順で進める
  • 同じ操作を繰り返さない(特に Git / DB 系の破壊的操作)
  • 切り分けの基本:SQL*Plus で接続できるか / VS Installer でワークロードがあるか / 直前に何を変更したか
  • 質問するときの伝え方は 付録 A-8 を参照(本付録には書きません)

エラーは、原因を確認する練習の機会 でもあります。慌てずに 1 つずつ確認していきましょう。