付録E トラブルシューティング集
この付録の目的
Section titled “この付録の目的”この付録は、研修中によく起きる トラブルと対処 を症状別にまとめた逆引き辞典です。 エラーが出たときは、すぐに答えを探すのではなく、まず次の順序で確認してください。
[1] エラーメッセージを最後まで読む[2] どのファイル・どの行で起きているか確認する[3] 直前に変更した箇所を確認する[4] テキストの手順と比較する[5] それでも分からなければ講師に質問するエラーは、プログラミング学習における 重要な手がかり です。慌てずに 1 つずつ確認していきましょう。
他の付録との役割分担
付録 内容 付録 A-8 詰まったときの動き方、質問の作法 付録 B VS の 機能と操作の正式手順 付録 C Git の コマンドと初期設定 付録 E(本付録) 症状からの逆引き対処 質問するときの伝え方は 付録 A-8 を参照してください(本付録には記載しません)。
症状別 INDEX
Section titled “症状別 INDEX”下表の症状の中から、自分の状況に近いものを選んでください。
A. ビルド・実行
Section titled “A. ビルド・実行”| 症状 | セクション |
|---|---|
新規作成で目的のテンプレートが見つからない / Program.cs がない | E-1 |
| コンソールアプリの画面がすぐ閉じる | E-2 |
| コードに赤い波線が出る / エラー一覧に大量のエラーが出る | E-3 |
B. NuGet・参照
Section titled “B. NuGet・参照”| 症状 | セクション |
|---|---|
NuGet パッケージが追加できない / using Oracle.ManagedDataAccess.Client; で赤波線 | E-4 |
C. Oracle Database 接続
Section titled “C. Oracle Database 接続”| 症状 | セクション |
|---|---|
C# から Oracle Database に接続できない(ORA-01017 / ORA-12541 など) | E-5 |
employees 表 / departments 表が見つからない(ORA-00942) | E-6 |
D. Windows フォーム(第 18〜25 章)
Section titled “D. Windows フォーム(第 18〜25 章)”| 症状 | セクション |
|---|---|
| ボタンを押しても処理が動かない | E-7 |
DataGridView に何も表示されない | E-8 |
Form1.Designer.cs でエラーになった / デザイナーが開けない | E-9 |
| 実行しようとすると「アプリケーション制御ポリシー」でブロックされる | E-10 |
E. ASP.NET Core MVC(第 26〜29 章)
Section titled “E. ASP.NET Core MVC(第 26〜29 章)”| 症状 | セクション |
|---|---|
MVC の View が表示されない / 404 Not Found | E-11 |
appsettings.json 編集後にエラー | E-12 |
F. Git
Section titled “F. Git”| 症状 | セクション |
|---|---|
git push でエラーになる | E-13 |
bin / obj が git status に出る、または Git に入ってしまった | E-14 |
A. ビルド・実行
Section titled “A. ビルド・実行”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「実行・ビルド」(
F5とCtrl + 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 + .)
B. NuGet・参照
Section titled “B. NuGet・参照”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 追加の初出)
C. Oracle Database 接続
Section titled “C. Oracle Database 接続”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 側に問題がないか切り分けてください。
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 を実行すると
OracleExceptionでORA-00942
確認
pingtユーザー で接続しているか(別ユーザーにはemployeesがない)- 表名のスペル(
EMPLOYEES、DEPARTMENTS)が正しいか - SQL*Plus で次が表示されるか
SELECT table_name FROM user_tables;対処
pingtユーザーにEMPLOYEES/DEPARTMENTSが表示されない場合 → SQL 研修のテーブル作成スクリプトを再実行する必要あり、講師に相談- 表示される場合 → C# 側の SQL のスペルや接続ユーザーを確認
関連
- 第 16 章 16-7「ORA エラー番号と対処」
- 章間整合ルール「1-3 employees テーブルの社員データ」(SQL 研修整合)
D. Windows フォーム(第 18〜25 章)
Section titled “D. Windows フォーム(第 18〜25 章)”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-catchでMessageBox.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 を変更した後、コード側が古い名前のまま対処
- 自分で
Designer.csを大きく修正しない(壊した状態を上書きしてさらに悪化することが多い) - 直前の変更を
Ctrl + Zで戻せるなら戻す - Git で前回コミット時点まで戻す方法もあるが、講師に相談 してから
- デザイナーが開けないだけなら、コード側で該当する行を 1 つずつ修正できる場合もある
イベントだけ残ったケースの例
ボタンを削除したのに、
Form1.Designer.csにthis.button1.Click += new EventHandler(this.button1_Click);のような行が残っていることがあります。該当行を削除、Form1.csのbutton1_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. ASP.NET Core MVC(第 26〜29 章)
Section titled “E. ASP.NET Core MVC(第 26〜29 章)”E-11 MVC の View が表示されない / 404 Not Found
Section titled “E-11 MVC の View が表示されない / 404 Not Found”症状
- ブラウザで URL を叩いても、
404 Not Foundまたは「ビューが見つかりません」 - Controller は作ったのに、画面が出ない
確認(規約の対応)
URL : /Employee/IndexController : Controllers/EmployeeController.cs public IActionResult Index() { return View(); }View ファイル : Views/Employee/Index.cshtml- Controller の クラス名は
<名前>Controller(末尾にController)になっているか - View のフォルダ名は Controller 名から
Controllerを除いたもの と一致しているか(例:EmployeeController→Views/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に接続文字列を書く」
F. Git
Section titled “F. Git”E-13 git push でエラーになる
Section titled “E-13 git push でエラーになる”症状
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 statusにbin/やobj/が表示される- すでに
git add/git commitしてしまった
確認
.gitignoreファイルがリポジトリのルートにあるか.gitignoreにbin//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 つずつ確認していきましょう。