技術メモ

【C#】DataGridViewで良く利用する設定たち

設定

 

値取得

 

セルを抜けなくてもCellValueChangedイベントを発生させる

 

【C#】文字列から特定の末尾を除く

以下のようにTrimを使うことで末尾の特定の文字列を除くことができる。

但しこのコードの場合は、文字列の先頭にも特定の文字列が含まれた場合に、それも除かれる。
問題がある場合は、以下のように自力で末尾の文字だけ除けばよい。

 

【C#】DataTableのSelect高速化

Selectの前に、DefaultView.Sortを呼び出してIndexを作成することで高速化できる。(何度もSelectする状況を想定)

ちなみに、Selectで指定する値は数値でも文字列でも「’」で囲んでおくのが無難。
エラー内容は忘れたが、数値型の列を数値でSelectしたところ謎の例外エラーが発生して困った際に「’」で囲んだらエラー回避できた・・・

【LINE】「この写真は破損しているため表示できません」と表示され、投稿できない

現象

LINEグループのアルバムに写真を投稿しようとして、写真を選択すると「この写真は破損しているため表示できません」と表示され、投稿できなかった。 続きを読む 【LINE】「この写真は破損しているため表示できません」と表示され、投稿できない

【教訓集】

(随時追記中・・・)

コーディング

  • 変数名、メソッド名は分かりやすく
  • エラーチェックはメソッドの先頭で行い、エラーがあればその場で適切なメッセージを出し、returnする
  • 文字列結合はStringBuilderを使う
  • DataTableを編集する場合は、BeginLoadData、EndLoadDataを使う
  • DataRowを編集する場合は、BeginEdit、EndEditを使う
  • プログラム自体の戻り値は正常終了した場合は0、それ以外の場合は1以上を返す
  • VB.NETで開発するときには、「Option Strict On」「Option Explicit On」を行う
  • 長い処理時間が見込まれる場合は、カーソルを砂時計に

テスト

  • 複数同時アクセス、大量アクセスを試す
  • タブキー押下でのタブ順移動

タスクスケジューラ

  • ログオンユーザーの違いにより、動作が変わる可能性あり
  • 直接プログラムを呼び出さず、batファイルからプログラム呼び出しを行う。その際にカレントディレクトリを指定する

PostgreSQL

  • 1日1回、VACUUM ANALYZEする
  • 月1回、REINDEX、CLUSTERする

【ASP.NET】JavaScript側でコントロールのIDを取得する方法

aspxファイルにJavaScriptを記載する際に、'<%= から %>’ までの間にコントロール名.ClientID を記載する。

【C#】async/awaitを利用したマルチスレッド実装テンプレート

ボタン押下時の処理にて、以下のような要件を想定したサンプルです。
(.NET Framework4.5.1利用)

開始

A処理
↓   ↓
B処理  C処理 ※
↓   ↓
D処理

終了

※ここだけ並行処理可能なので、マルチスレッド化したい。

実行結果>

最初に行う処理。これが終わるまではMainSampleは呼び出されない。
処理開始:5
処理開始:1
処理完了:1
処理完了:5
task1の戻り値:task1の処理完了:2017/02/18 0:15:32
task2の戻り値:task2の処理完了:2017/02/18 0:15:28
最後に行う処理。MainSampleが終わった後に呼び出される。

【Inno Setup】Inno Setup Scripts(*.iss)ファイルテンプレート

Inno Setupの記述サンプルです。
以下の例では、EXEとReadme.txtがインストーラに含まれます。
実際のパス、アプリ名称などを修正して利用してください。

尚、必ず[Setup]のAppIdは、Inno Setup Compilerのメニューから、Tools→Generate GUIDをクリックして出力された値に書き換えてから利用してください。