カテゴリー別アーカイブ: 開発サンプル

アプリケーションを再起動する/自分自身のプログラムを再起動する

VB.NET
‘アプリケーションを再起動する
Application.Restart()

C#
//アプリケーションを再起動する
Application.Restart();


using System;

public class Program
{
//エントリポイント
public static void Main()
{
try
{
Restart();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(
“再起動に失敗しました。\n\nエラー: ” + ex.Message,
“再起動に失敗しました”,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Error);
}
}

//コマンドライン引数で指定された設定を使用して再起動する
private static void Restart()
{
//コマンドライン引数を取得する
string[] args = System.Environment.GetCommandLineArgs();
if (args.Length < 4) { throw new ArgumentException("コマンドライン引数が足りません。"); } //終了を監視するプロセスIDを取得する int processId; try { processId = int.Parse(args[1]); } catch (Exception ex) { throw new ArgumentException("プロセスIDが不正です。", ex); } //終了の最長待機時間を取得する int waitTime; try { waitTime = int.Parse(args[2]); } catch (Exception ex) { throw new ArgumentException("待機時間が不正です。", ex); } if (waitTime < 1 || 60000 < waitTime) { throw new ArgumentException("待機時間は最長1分です。"); } //起動するアプリケーションの実行ファイルのパスを取得する string exePath = args[3]; if (!System.IO.File.Exists(exePath)) { throw new ArgumentException("実行ファイルが見つかりません。"); } //起動時に指定するコマンドライン引数を作成する string cmd = ""; for (int i = 4; i < args.Length; i++) { if (4 < i) { cmd += " "; } cmd += "\"" + args[i] + "\""; } //再起動する Restart(processId, waitTime, exePath, cmd); } ///

/// 指定された設定を使用して再起動する
///

/// 終了まで待機するアプリケーション /// 待機する再長時間(ミリ秒単位) /// 再起動する実行ファイルのパス /// 再起動する時指定するコマンドライン引数 private static void Restart(int exitProcessId, int exitWaitTime,
string exePath, string commandLine)
{
//終了を監視するプロセスを探す
System.Diagnostics.Process p;
try
{
p = System.Diagnostics.Process.GetProcessById(exitProcessId);
}
catch (ArgumentException)
{
//見つからない時はアプリケーションがすでに終了していると判断する
p = null;
}

//アプリケーションの終了を待機する
if (p != null)
{
if (!p.WaitForExit(exitWaitTime))
{
throw new Exception(“アプリケーションが終了しませんでした。”);
}
p.Close();
}

//アプリケーションを起動する
System.Diagnostics.Process.Start(exePath, commandLine);
}
}

DataGridViewのEditModeを設定すると、その意味

メンバー名 説明
EditOnEnter

セルがフォーカスを受け取ったときに編集が開始されます。このモードは、Tab キーを押して行に値を入力するとき、または Enter キーを押して列に値を入力するときに便利です。

EditOnF2

セルにフォーカスがあるときに F2 キーを押すと、編集が開始されます。このモードは、セルの内容の末尾を選択します。

EditOnKeystroke

セルにフォーカスがあるときに英数字キーを押すと、編集が開始されます。

EditOnKeystrokeOrF2

セルにフォーカスがあるときに英数字キーまたは F2 キーを押すと、編集が開始されます。

EditProgrammatically

BeginEdit メソッドが呼び出されたときにだけ編集が開始されます。

DateTimePicker コントロールの日付を取得する

private void button1_Click(object sender, System.EventArgs e)
{
// Display the selected date and time:
MessageBox.Show(“Your’ve selected the meeting date: “+ dateTimePicker1.Value.Date);
// Display today’s date and time:
MessageBox.Show(“Today is: ” + DateTime.Today);

DateTime dtNow = DateTime.Now;
// 日付部分だけを表示する
MessageBox.Show(dtNow.ToShortDateString());

}

データベース接続での、接続プールとその接続文字列

Max Pool Size 100 プール内の最大接続数。
Min Pool Size 1 プール内の最小接続数。

static void Main()
{
OracleConnection con = new OracleConnection();
//Open a connection using ConnectionString attributes
//related to connection pooling.
con.ConnectionString =
“User Id=scott;Password=tiger;Data Source=oracle;” +
“Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;” +
“Incr Pool Size=5; Decr Pool Size=2”;
con.Open();
Console.WriteLine(“Connection pool successfully created”);
// Close and Dispose OracleConnection object
con.Close();
con.Dispose();
Console.WriteLine(“Connection is placed back into the pool.”);
}

DateTime.Now 日時を指定書式の文字列に変換

記述例(カスタム書式)
内容 記述例 出力
年月日
DateTime.Now.ToString("yyyy/MM/dd")
2013/02/05
DateTime.Now.ToString("yyyy年MM月dd日")
2013年02月05日
DateTime.Now.ToString("yyyyMMdd")
20130205
時分秒
DateTime.Now.ToString("tthh:mm:ss")
午前04:05:06
DateTime.Now.ToString("tthh時mm分ss秒")
午前04時05分06秒
時分秒(24時間形式)
DateTime.Now.ToString("HH:mm:ss")
16:05:06
時分秒(ミリ秒)
DateTime.Now.ToString("HH:mm:ss.fff")
16:05:06.789
日時書式(カスタム書式)
内容 書式 記述例 出力
年号
※単独使用時は%を付ける
gまたはgg
DateTime.Now.ToString("%g")
西暦
DateTime.Now.ToString("gg")
西暦
年(0~99)
※単独使用時は%を付ける
y
DateTime.Now.ToString("%y")
13
DateTime.Now.ToString("y/M/d")
13/2/5
年(00~99) yy
DateTime.Now.ToString("yy")
13
年(3桁以上) yyy
DateTime.Now.ToString("yyy")
2013
年(4桁) yyyy
DateTime.Now.ToString("yyyy")
2013
月(1~12)
※単独使用時は%を付ける
M
DateTime.Now.ToString("%M")
2
DateTime.Now.ToString("yyyy/M/d")
2013/2/5
月(01~12) MM
DateTime.Now.ToString("MM")
02
月略称 MMM
DateTime.Now.ToString("MMM")
2
月名称 MMMM
DateTime.Now.ToString("MMMM")
2月
日(0~31)
※単独使用時は%を付ける
d
DateTime.Now.ToString("%d")
5
DateTime.Now.ToString("yyyy/M/d")
2013/2/5
日(00~31) dd
DateTime.Now.ToString("dd")
05
曜日略称 ddd
DateTime.Now.ToString("ddd")
曜日名称 dddd
DateTime.Now.ToString("dddd")
火曜日
午前・午後(略称)
※単独使用時は%を付ける
t
DateTime.Now.ToString("%t")
DateTime.Now.ToString("t hh:mm")
午 04:05
午前・午後 tt
DateTime.Now.ToString("tt")
午前
時(1~12)
※単独使用時は%を付ける
h
DateTime.Now.ToString("%h")
4
DateTime.Now.ToString("h:m:s")
4:5:6
時(01~12) hh
DateTime.Now.ToString("hh")
04
時(0~23)
※単独使用時は%を付ける
H
DateTime.Now.ToString("%H")
4
DateTime.Now.ToString("H:m:s")
4:5:6
時(00~23) HH
DateTime.Now.ToString("HH")
04
分(0~59)
※単独使用時は%を付ける
m
DateTime.Now.ToString("%m")
5
DateTime.Now.ToString("h:m:s")
4:5:6
分(00~59) mm
DateTime.Now.ToString("mm")
05
秒(0~59)
※単独使用時は%を付ける
s
DateTime.Now.ToString("%s")
6
DateTime.Now.ToString("h:m:s")
4:5:6
秒(00~59) ss
DateTime.Now.ToString("ss")
06
秒(小数点以下)
※fまたはFの個数だけの桁数を取得
※単独使用時は%を付ける
fまたはF
DateTime.Now.ToString("%f")
7
DateTime.Now.ToString("h:m:s.f")
4:5:6.7
DateTime.Now.ToString("ff")
78
DateTime.Now.ToString("fff")
789
DateTime.Now.ToString("%F")
7
DateTime.Now.ToString("h:m:s.F")
4:5:6.7
DateTime.Now.ToString("FF")
78
DateTime.Now.ToString("FFF")
789
日時書式(標準書式)
内容 書式 記述例 出力
長い形式の日付 D
DateTime.Now.ToString("D")
2013年2月5日
短い形式の日付 d
DateTime.Now.ToString("d")
2013/02/05
年月 Y または y
DateTime.Now.ToString("Y")
2013年2月
月日 M または m
DateTime.Now.ToString("M")
2月5日
長い形式の時刻 T
DateTime.Now.ToString("T")
18:19:14
短い形式の時刻 t
DateTime.Now.ToString("t")
18:19
長い形式の完全な日時 F
DateTime.Now.ToString("F")
2013年2月5日 18:12:19
短い形式の完全な日時 f
DateTime.Now.ToString("f")
2013年2月5日 18:12
長い形式の一般の日時 G
DateTime.Now.ToString("G")
2013/02/05 18:15:24
短い形式の一般の日時 g
DateTime.Now.ToString("g")
2013/02/05 18:15
並べ替え可能な日時 s
DateTime.Now.ToString("s")
2013-02-05T18:23:50
世界時刻形式の完全な日時 U
DateTime.Now.ToString("U")
2013年2月5日 9:26:02
世界時刻形式の並べ替え可能な日時 u
DateTime.Now.ToString("u")
2013-02-05 18:26:02Z
ラウントリップする日時 O または o
DateTime.Now.ToString("O")
2013-02-05T18:23:50.6560730+09:00
RFC1123形式の日時 R または r
DateTime.Now.ToString("R")
Tue, 05 Feb 2013 18:23:50 GMT