【ASP.NET MVC5】今度は CSV インポートのサンプルプロジェクト作成チュートリアル

スポンサードリンク

にて DB データをエクスポートする機能を紹介いたしました。

今回は、対となるインポート機能を開発いたします♪

インポート機能のポイント

こちらのシステムでインポート機能を考えます。ポイントは次の 2 点です。

  • CSV の 1 行に Parent とその Child を記入する。
  • インポートできる子ども (Child) は 2 人まで。

Parent 1-n Child という関係を持っております。

ですのでシステム上は、Parent は必ず 1 つですけれども、それに紐づく Child はいくつあっても問題ありません。

ですけれども、インポート機能におきましては子どもの数の最大数を制限しませんと CSV ファイルの仕様を固めることが難しくなります。

したがいまして、今回は Child の数を最大 2 つとし、それ以上登録したい場合はウェブブラウザから追加する、という運用方法を想定いたしました。

CSV インポート開発の流れ

に沿ってサンプルプロジェクトを作成したところからスタートです。

ソリューションおよびプロジェクト名は Sample3 といたしました。

  1. コントローラー CsvController.cs をスキャフォールディング作成
  2. アップロードファイルに対応するモデル CsvFile.cs を作成
  3. アップロードするファイルの種類を検証する属性クラス UploadFileAttribute の作成
  4. ビュー Import.cshtml の作成
  5. インポート処理を司るサービスクラス CsvImportService の作成
  6. テスト CSV ファイル作成と、インポートの確認

“【ASP.NET MVC5】今度は CSV インポートのサンプルプロジェクト作成チュートリアル”の続きを読む

【C#】StringBuilder で改行文字を入れたい場合は、AppendLine 関数を使う!

コード例

の CreateCsv メソッドが次のように書けますわね♪

var sb = new StringBuilder();
sb.Append(GetCsvHeader()).Append(NEWLINE_CHARACTER);
parentList.ForEach(p => sb.Append(CreateCsvLine(p)).Append(NEWLINE_CHARACTER));
return sb.ToString();

var sb = new StringBuilder();
sb.AppendLine(GetCsvHeader());
parentList.ForEach(p => sb.AppendLine(CreateCsvLine(p)));
return sb.ToString();

参考ページ

“【C#】StringBuilder で改行文字を入れたい場合は、AppendLine 関数を使う!”の続きを読む


スポンサードリンク

【Visual Studio 2015】からデータベースに手軽に SQL を実行する方法メモ【SQL Server】

SQL クエリウインドウで SQL 実行、結果確認をしているところ

ポイント

  • SQL Server Object Explorer、またはサーバーエクスプローラーを使用する。
  • 右クリック > 新しいクエリ、で開いたエディタで、データベースを選択して SQL を書いて実行する。
  • 実行は、エディタエリア左上部の「▷」アイコン、Execute (Ctrl+Shift+E) で行う。
  • 実行結果がウインドウの下に表示され、結果を確認できる。
  • テーブルやカラム名の補完が効く (Ctrl + スペース) ので積極的に使っていきたい。

“【Visual Studio 2015】からデータベースに手軽に SQL を実行する方法メモ【SQL Server】”の続きを読む

【ASP.NET MVC5】プロジェクト外の DB に接続する方法

ASP.NET MVC5 のチュートリアルを実践しておりますと、開発環境の内部に自然とデータベースが作成され、自然と接続しております。

大変便利ですの♪

ですけれども、自分の意志でデータベースを作成し、そして、自分の意志でプロジェクトから接続するデータベースを決めるにはどうしたらよいのかしら?

今回、それらのやり方を残します!

DB の作成方法

“【ASP.NET MVC5】プロジェクト外の DB に接続する方法”の続きを読む

Excel VBA を学ぶのに参考になっているページまとめ

環境

  • エクセル 2013

チュートリアル。起動方法から、オブジェクト指向まで。

VBA でクラスを扱うときのやり方。他の言語でのクラスとの比較が嬉しい。

複数データの扱いは、配列ではなくコレクションを使うのが良さそう。「vba コレクション」「vba コレクション for」で検索

コーディングスタイル。命名規則。

エディタの設定からプロジェクト例まで。一通り読んでエディタを設定しておくとよさそう。

CSV 取り込みについて

“Excel VBA を学ぶのに参考になっているページまとめ”の続きを読む

OneDrive を英語表示から日本語表示に切り替える設定

ポイント

  • OneDrive ウェブページのフッター部分の一番右の言語名が表示されている部分が、言語設定

OneDrive の表示言語を英語から日本語に切り替える手順

  1. OneDrive にアクセスしてサインイン
    OneDrive ログイン後画面
  2. フッターの「Englis (United States)」をクリックして言語選択を表示。
    「日本語 – Japanese」を選択して、「Save」
    フッターから OneDrive の言語設定
  3. メニューが日本語表示になった。
    OneDrive の言語が日本語になった

“OneDrive を英語表示から日本語表示に切り替える設定”の続きを読む

【ASP.NET MVC5】CSV エクスポートのサンプルプロジェクト作成チュートリアル

追記: インポート版も作りましたの♪

DB のデータを CSV に出力してウェブブラウザからダウンロードしたいですの!今回、それを実現するコードを残しておきますわ♪

CSV エクスポートの対象となるシステム

エクスポートされる CSV の仕様

  • ヘッダ行を出力する。
  • 1 行に Parent とその Child を 2 人分まで出力する。
  • セルは常にダブルクォーテーション「”」で囲む。
  • セルの区切り文字はカンマ「,」とする。
  • 行末に区切り文字は付けない。

「1 行に Parent とその Child を 2 人分まで出力」いたしますので、子供が 0 人の場合は子どもの部分が空白となりますし、1 人の場合は 1 人分のみ埋まります。Child が 3 人の場合は、2 人分のみ CSV に書き込まれ、3 人目は記録されない点に注意ですの!

手順 1. CSV エクスポート用のコントローラー、ビューを作成

“【ASP.NET MVC5】CSV エクスポートのサンプルプロジェクト作成チュートリアル”の続きを読む

【ASP.NET MVC5】例外発生時のカスタムエラーページの設定ポイント♪

【ASP.NET MVC5】例外発生を補足して自動的にログ書き込みを行う方法 | oki2a24 ではエラーが発生したときに自動的にロギングされるように設定いたしました。

この時、エラーページが自動的に表示されるわけですけれども、これを明確にコントロールするためのポイントをメモしておきます♪

ポイント

  • HTTP 404. Not Found 時にはカスタムエラーページは表示されない。
  • コードの確認ポイント
    • Web.config の <system.web> 内の の mode を On にしていること
    • App_Start\FilterConfig.cs の RegisterGlobalFilters メソッド に HandleErrorAttribute クラスを追加していること
    • Views\Shared\Error.cshtml でエラー画面を設定していること

ひとつひとつコードを見ていきます。

“【ASP.NET MVC5】例外発生時のカスタムエラーページの設定ポイント♪”の続きを読む

【ASP.NET MVC5】例外発生を補足して自動的にログ書き込みを行う方法

前提条件

ASP.NET MVC5 では、開発中に例外が発生しますとビューに自動的に例外情報を表示してくださいます。

本番の時も、自動的に知らせて欲しいですの!ですけれども、画面に表示するわけにはまいりません。ログに出力したいですの♪

今回、例外が発生したら自動的にログに書き込む方法を残します。

例外発生を自動的にロギングするコード

  • Global.asax ファイル を利用する。
  • Application_Error メソッド宣言には override 不要。
  • エラーは、Application_Error メソッドの引数ではなく、Server.GetLastError() で取得する。

Global.asax

protected void Application_Error(object sender, EventArgs e)
{
 var exception = Server.GetLastError();
 if (exception == null)
 {
  return;
 }
 logger.Error(exception.Message, exception);
}

“【ASP.NET MVC5】例外発生を補足して自動的にログ書き込みを行う方法”の続きを読む

【ASP.NET MVC5】log4net でログレベルごとにログを出力する設定!、動的なログファイル命名設定!、ログファイルのサイズ指定設定!

【ASP.NET MVC5】log4net の導入手順メモ♪ | oki2a24 で log4net を MVC5 プロジェクトに導入する方法を確かめました。

今回は、log4net の設定について、ログレベルごとに違うファイルにログを出力する方法、動的なログファイル命名、ログファイルのサイズ指定を残します。

ログレベルで出力ファイルを変える Config の中身

“【ASP.NET MVC5】log4net でログレベルごとにログを出力する設定!、動的なログファイル命名設定!、ログファイルのサイズ指定設定!”の続きを読む