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

フォーム上のアクティブコントロール(ActiveControl)が変わったときに発生するイベント

そのようなイベントは用意されていないので、
必要なコントロールのEnterイベントを共通のイベントハンドラで処理すれば解決できませんか。

↓親クラスの定義
public virtual void FrmCommon_Enter(object sender, EventArgs e)
{
if (sender is TextBox)
{
//テキストボックスなら全選択状態にする
((TextBox)sender).SelectAll();
}
}

↓実装フォームの定義
public override void FrmCommon_Enter(object sender, EventArgs e)
{
base.FrmCommon_Enter(sender, e);
}

↓コントロールに割り当て
2015-10-24_180706

日付の取得、時刻の取得、日付のフォーマット変更、変換

■MySQL日付、時刻、曜日などその他色々な取得例

時間を取得する方法です。

使用例

mysql> select current_time;
+--------------+
| current_time |
+--------------+
| 06:43:15     |
+--------------+

日付の取得

使用例

mysql> select current_date;
+--------------+
| current_date |
+--------------+
| 2006-09-13   |
+--------------+

日付、時刻の取得

使用例

mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2006-09-13 06:14:47 |
+---------------------+

日付、時刻の取得

使用例

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2006-11-23 13:49:22 |
+---------------------+

曜日の取得

使用例

mysql> SELECT DAYNAME(NOW());
+----------------+
| DAYNAME(NOW()) |
+----------------+
| Friday         |
+----------------+

曜日を数字で取得(月曜日が0で1ずつ増えていきます)

使用例

mysql> SELECT weekday(now());
+----------------+
| weekday(now()) |
+----------------+
|              0 |
+----------------+

今年に入って何日経過したかを取得

使用例

mysql> SELECT dayofmonth(now());
+-------------------+
| dayofmonth(now()) |
+-------------------+
|                15 |
+-------------------+

月末の日付を取得する

使用例

mysql> SELECT last_day(now());
+-----------------+
| last_day(now()) |
+-----------------+
| 2007-01-31      |
+-----------------+

 

■MySQLフォーマットの変更

DATE_FORMAT()を使用すると様々なフォーマットに変更することが出来ます。

下の表はDATE_FORMAT()で使用できる文字です。

文字 説明
%Y 4桁の年を表示 2006
%y 2桁の年を表示 06
%M 月の名前を英語で表示 September
%m 月を数字で表示 09
%c 月を数字で頭の0無しで表示 9
%d 日付を表示 23
%W 曜日を表示 Wednesday
%p AM、PMを表示 PM
%r 時刻を12時間表記で表示 09:14:34 PM
%k 時刻を24時間表記で表示 21
%i 分を表示 34
%s 秒を表示 20

年/月/日にフォーマットにした例

使用例

mysql> SELECT DATE_FORMAT(now(),'%Y/%m/%d');
+-------------------------------+
| DATE_FORMAT(now(),'%Y/%m/%d') |
+-------------------------------+
| 2006/11/23                    |
+-------------------------------+

○○○○年○○日○○日にフォーマットした例

使用例

mysql> SELECT DATE_FORMAT(now(),'%Y年%m月%d日');
+-----------------------------------+
| DATE_FORMAT(now(),'%Y年%m月%d日') |
+-----------------------------------+
| 2006年11月23日                    |
+-----------------------------------+

日付、日時(DateTime)オブジェクトから日付や時間、曜日の情報を取得する

VB
‘2000年9月30日13時15分30秒を表すDateTimeオブジェクトを作成する
Dim dt As New DateTime(2000, 9, 30, 13, 15, 30)

‘年を取得する。「2000」となる。
Dim year As Integer = dt.Year
‘月を取得する。「9」となる。
Dim month As Integer = dt.Month
‘日を取得する。「30」となる。
Dim day As Integer = dt.Day

‘時間を取得する。「13」となる。
Dim hour As Integer = dt.Hour
‘分を取得する。「15」となる。
Dim minute As Integer = dt.Minute
‘秒を取得する。「30」となる。
Dim second As Integer = dt.Second
‘ミリ秒を取得する。「0」となる。
Dim millisecond As Integer = dt.Millisecond

‘曜日を取得する。「DayOfWeek.Saturday」となる。
Dim week As DayOfWeek = dt.DayOfWeek
‘Int32型にキャストする。「6」となる。
Dim weekNumber As Integer = CInt(dt.DayOfWeek)

‘曜日を文字列で取得する
‘省略された曜日名で取得する。「土」となる。
Dim strWeek1 As String = dt.ToString(“ddd”)
‘完全な曜日名で取得する。「土曜日」となる。
Dim strWeek2 As String = dt.ToString(“dddd”)

‘「2000/09/30 0:00:00」のDateTimeオブジェクトを作成する
Dim dtd As DateTime = dt.Date
‘時刻の部分を取得する。「13:15:30」となる。
Dim dtt As TimeSpan = dt.TimeOfDay
‘年間積算日を取得する。「30」となる。
Dim doy As Integer = dt.DayOfYear


C#

//2000年9月30日13時15分30秒を表すDateTimeオブジェクトを作成する
DateTime dt = new DateTime(2000, 9, 30, 13, 15, 30);

//年を取得する。「2000」となる。
int year = dt.Year;
//月を取得する。「9」となる。
int month = dt.Month;
//日を取得する。「30」となる。
int day = dt.Day;

//時間を取得する。「13」となる。
int hour = dt.Hour;
//分を取得する。「15」となる。
int minute = dt.Minute;
//秒を取得する。「30」となる。
int second = dt.Second;
//ミリ秒を取得する。「0」となる。
int millisecond = dt.Millisecond;

//曜日を取得する。「DayOfWeek.Saturday」となる。
DayOfWeek week = dt.DayOfWeek;
//Int32型にキャストする。「6」となる。
int weekNumber = (int)dt.DayOfWeek;

//曜日を文字列で取得する
//省略された曜日名で取得する。「土」となる。
string strWeek1 = dt.ToString(“ddd”);
//完全な曜日名で取得する。「土曜日」となる。
string strWeek2 = dt.ToString(“dddd”);

//「2000/09/30 0:00:00」のDateTimeオブジェクトを作成する
DateTime dtd = dt.Date;
//時刻の部分を取得する。「13:15:30」となる。
TimeSpan dtt = dt.TimeOfDay;
//年間積算日を取得する。「30」となる。
int doy = dt.DayOfYear;

参考

C#で メモ帳を起動する

//メモ帳を起動する
System.Diagnostics.Process p = System.Diagnostics.Process.Start(“notepad.exe”);

//コマンドライン引数に「”C:\test\1.txt”」を指定してメモ帳を起動する
System.Diagnostics.Process.Start(“notepad.exe”, @”””C:\test\1.txt”””);

//Excelファイルを起動する
System.Diagnostics.Process.Start(“excel.exe”, “C:\test\test.xls”);

Oracleのロックを解除。ORA-00054: リソース・ビジー

oracle使っていてロックがかかりっぱなしのテーブル。といったことはご経験がおありかと
ロックしたテーブルが発生すると解除まで結構時間がかかりますよね。

データベースのインポートする時にtruncateしようとすると、
ORA-00054: リソース・ビジー、NOWAITが指定されていました。
とか表示されたりします。

さて、解決方法を探しました。

簡単簡単。
表をロックしているセションを解除すればOKです。

— ロックしているセッションを探す
SELECT SID, SERIAL# FROM V$SESSION
WHERE SID IN (
SELECT SID FROM V$LOCK
WHERE TYPE IN (‘TM’,’TX’)
)

上記SQLでセションIDとシリアルナンバーを取得します。
その後、取得した値を使ってセッションを切断すればよい。

— セッションを切断
alter system kill session ‘[SID], [SERIAL#]’

ですが、これでもダメな方は。。。ロックを解除できなければ、
DBサーバにログインしてOracleのサービスを再起動しましょう。
これでさすがに解決されると思います。
もちろん少しの間DBは使えなくなり、、、まぁ最悪ですがね。

トランザクションなど全ての処理が止まるので
今回のようにテスト環境以外ではよほどの緊急時じゃないかぎりNGですよね。

スタイルで要素を最前面に表示する|(css jquery)

DIV等の要素が重なっている場合に、特定の要素を動的に最前面に表示する方法です。

要素の重なり順を制御するためにスタイルにz-indexがあります。この値を適切に設定すれば、要素の順番を制御することができます。

<div id=”A” style=”z-index=20;width: 100px; 100px;background-color: Red;” /div>
<div id=”B” style=”z-index=10;width: 100px; 100px;background-color: Blue;” /div>

$(document).ready(function(){
$(‘#img-dtl13′).hover(function(){
$(this).css({ position:’absolute’,zIndex:1000 });
}, function(){
$(this).css({ position:’absolute’,zIndex:1 });
});

”position”指定しないと、ききませんから!
ここで相当ハマった。。。