2009年12月25日金曜日

C# で、debug.print

Console.WriteLine("出力ウィンドウに出したい内容");

2009年12月21日月曜日

C# ドラッグアンドドロップする

・コントロールにドロップできるようにするには

* AllowDropプロパティをTrueにして
* DragEnterイベントでe.Effect = DragDropEffects.Copyとして
* DragDropイベントで e.Data.GetDataをつかってデータを受け取る。

・ドラッグするにはDoDragDropメソッドを使う

・ファイルのドラッグ&ドロップではファイルはあらかじめ存在していなければならず、ドラッグデータとしては必ず「ファイル名の配列」を使用する。

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard22.htm

2009年11月13日金曜日

excelでのパスの取得

'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir

2009年10月21日水曜日

C# でフルパスからファイル名を取得

using System;
using System.IO;

public class GetFileName {
static void Main() {
string path1 = @"c:\windows\system32\notepad.exe";
string file1 = Path.GetFileName(path1);
Console.WriteLine(file1); // 出力例:notepad.exe

string path2 = "c:notepad.exe";
string file2 = Path.GetFileName(path2);
Console.WriteLine(file2); // 出力例:notepad.exe

string path3 = "http://www.atmarkit.co.jp/index.html";
string file3 = Path.GetFileName(path3);
Console.WriteLine(file3); // 出力例:index.html
}
}

C# で動的配列

System.Collections.ArrayList list = new System.Collections.ArrayList(); // listという名前のArrayListを作成
list.Add("First Item"); //First Itemという文字列をArrayListに追加
list.Add("Second Item"); //Second Itemという文字列をArrayListに追加
string firstItem = (string)list[0]; //stringにキャストが必要
Console.WriteLine(firstItem);

2009年10月14日水曜日

C# DateTimePicker

http://www.labasp.net/CsharpNote/mControl/DateTimePicker/101_110.html#107

C# テーブルアダプターでストアド

//// データセットのクリア
//this.dataSet11.P_TEST01.Clear();
//this.t_TEST01TableAdapter1 adp = (this.t_TEST01TableAdapter1);
// パラメータを指定して呼び出す
//t_TEST01TableAdapter1.Fill((P_TEST01());

// 引数がなくて値を返す時
//DataSet1TableAdapters.P_TEST01TableAdapter adp1 = new DataSet1TableAdapters.P_TEST01TableAdapter();
////adp1.Fill(dataSet11.P_TEST01);
//this.p_TEST01TableAdapter.Fill(this.dataSet11.P_TEST01);
////レコードセットを表示
//this.dataGridView1.DataSource = this.dataSet11.P_TEST01;
// 要素を取り出してみよう

//int i;
//for (i = 0; i < 4; i++)
//{
// MessageBox.Show(this.dataSet11.P_TEST01.Rows[0].ItemArray[i].ToString());
//}

//// 引数があって値を返す時
//DataSet1TableAdapters.P_TEST04TableAdapter adp2 = new DataSet1TableAdapters.P_TEST04TableAdapter();
//adp2.Fill(dataSet11.P_TEST04, int0);
//MessageBox.Show (this.dataSet11.P_TEST04.ToString());

//adp2.GetData(8);

//// 引数がなくて値を返さないとき
//DataSet1TableAdapters.P_TEST02 adp3 = new DataSet1TableAdapters.P_TEST02();
//adp3.exec();

//// 引数があって値を返さない時
//adp3.exec03(int0);


////NWindDataSetTableAdapters.CustOrderHistTableAdapter adapter = new NWindDataSetTableAdapters.CustOrderHistTableAdapter();
////adapter.Fill(nWindDataSet1.CustOrderHist, comboBox1.SelectedValue.ToString());

2009年9月18日金曜日

データベースの自動起動

1. サービス
windowsのサービスでDBが立つヤツとマネジメントサーバが立つヤツを自動にする

2. レジストリ
レジストリの
HKEY_LOCAL_MACHINE > SOFTWARE > ORACLE > HOME0 の
ORACLE_(SID)_AUTOSTART を TRUE にする

3. OS認証
sqlnet.oraに
SQLNET.AUTHENTICATION_SERVICES =(NONE)
と記述

ORA_OEMREP_SHUTDOWN_TIMEOUT

2009年9月9日水曜日

MySQL の文字列関連の関数

■文字列連結
・文字列結合は concat() を使用する。
select concat(123456, 789012);

+------------------------+
| concat(123456, 789012) |
+------------------------+
| 123456789012 |
+------------------------+

select concat('123456', 789012);

+--------------------------+
| concat('123456', 789012) |
+--------------------------+
| 123456789012 |
+--------------------------+

select concat('123456', '789012');

+----------------------------+
| concat('123456', '789012') |
+----------------------------+
| 123456789012 |
+----------------------------+

select concat(key1, data1) from testm;

+---------------------+
| concat(key1, data1) |
+---------------------+
| a0011 |
| a0111 |
| b00210 |
| c003100 |
+---------------------+

■char 文字変換

・char() 関数は、コードに該当する ASCII 文字を返す。
この例では、「1」と言う文字が返る。

select char(49);

+----------+
| char(49) |
+----------+
| 1 |
+----------+

■ascii コード変換

・ascii() 関数は、文字に該当する ASCII コードを返す。
この例では、「49」と言う数字が返る。

select ascii('1');

+------------+
| ascii('1') |
+------------+
| 49 |
+------------+

■小文字化

・lower() 関数は、英字を小文字にして返す。

select lower('ABC012');

+-----------------+
| lower('ABC012') |
+-----------------+
| abc012 |
+-----------------+

■大文字化

・upper() 関数は、英字を大文字にして返す。

select upper('abc012');

+-----------------+
| upper('abc012') |
+-----------------+
| ABC012 |
+-----------------+

■左文字埋め

・lpad() 関数は、文字列の左に指定文字を埋めて指定数切り出します。
(切り出し指定数になるまで繰り返し埋めます。)

select lpad('abc', 5, '0');

+---------------------+
| lpad('abc', 5, '0') |
+---------------------+
| 00abc |
+---------------------+

select lpad('abc', 5, '012');

+-----------------------+
| lpad('abc', 5, '012') |
+-----------------------+
| 01abc |
+-----------------------+

・指定文字省略値はないようで、指定しないとエラーになる。

select lpad('abc', 5, ' ');

+---------------------+
| lpad('abc', 5, ' ') |
+---------------------+
| abc |
+---------------------+

■右文字埋め

・rpad() 関数は、文字列の右に指定文字を埋めて指定数切り出します。
(切り出し指定数になるまで繰り返し埋めます。)

select rpad('abc', 5, '0');

+---------------------+
| rpad('abc', 5, '0') |
+---------------------+
| abc00 |
+---------------------+

select rpad('abc', 5, '012');

+-----------------------+
| rpad('abc', 5, '012') |
+-----------------------+
| abc01 |
+-----------------------+

・指定文字省略値はないようで、指定しないとエラーになる。

select rpad('abc', 5, ' ');

+---------------------+
| rpad('abc', 5, ' ') |
+---------------------+
| abc |
+---------------------+

■左空白削除

・ltrim() 関数は、文字列の左側の空白を除去します。

select ltrim(' abc');

+------------------------+
| ltrim(' abc') |
+------------------------+
| abc |
+------------------------+

■右空白削除

・rtrim() 関数は、文字列の右側の空白を除去します。

select ltrim('abc ');

+------------------------+
| ltrim('abc ') |
+------------------------+
| abc |
+------------------------+

■左右空白削除

・trim() 関数は、文字列の左右の空白を除去します。

select trim(' abc ');

+---------------------------------+
| trim(' abc ') |
+---------------------------------+
| abc |
+---------------------------------+

■文字列置き換え

・replace() 関数は、文字列の置き換えをする。
「a0a1a2」中の a0 を b1 に置き換える場合、次のようにします。

select replace('a0a1a2', 'a0', 'b1');

+-------------------------------+
| replace('a0a1a2', 'a0', 'b1') |
+-------------------------------+
| b1a1a2 |
+-------------------------------+

・translate() 関数は、ないようである。

■文字列切り出し

・substring() 関数は、文字列の切り出しをする。

select substring('abc012', 3, 2);

+---------------------------+
| substring('abc012', 3, 2) |
+---------------------------+
| c0 |
+---------------------------+

・開始位置以降、最後まで切り出す場合は、切り出す文字数を省略できる。

select substring('abc012', 3);

+------------------------+
| substring('abc012', 3) |
+------------------------+
| c012 |
+------------------------+

■文字列検索

・locate() 関数は、文字列の検索を行う。

select locate('c0', 'abc012');

+------------------------+
| locate('c0', 'abc012') |
+------------------------+
| 3 |
+------------------------+

select locate('c0', 'abc012c0', 4);

+-----------------------------+
| locate('c0', 'abc012c0', 4) |
+-----------------------------+
| 7 |
+-----------------------------+

■文字列の長さ

・length() 関数は、文字列の長さを返す。

select length('abc012');

+------------------+
| length('abc012') |
+------------------+
| 6 |
+------------------+

■文字列繰り返し

・repeat() 関数は、文字列を繰り返し返す。

select repeat('abc012', 2);

+---------------------+
| repeat('abc012', 2) |
+---------------------+
| abc012abc012 |
+---------------------+

■数値から文字列へ変換 (数値フォーマット、書式変換)

・文字列としての結合は concat() を使用する。

select concat(123456, 789012);

+------------------------+
| concat(123456, 789012) |
+------------------------+
| 123456789012 |
+------------------------+

select concat('123456', 789012);

+--------------------------+
| concat('123456', 789012) |
+--------------------------+
| 123456789012 |
+--------------------------+

select concat('123456', '789012');

+----------------------------+
| concat('123456', '789012') |
+----------------------------+
| 123456789012 |
+----------------------------+

・三桁毎にカンマを付けるには、次のようにする。

select format(123456, 0);

+-------------------+
| format(123456, 0) |
+-------------------+
| 123,456 |
+-------------------+

select format(123456, 2);

+-------------------+
| format(123456, 2) |
+-------------------+
| 123,456.00 |
+-------------------+

■文字列から数値へ変換

・勝手にやるみたいです。

select '0123' + 100;

+--------------+
| '0123' + 100 |
+--------------+
| 223 |
+--------------+

select '0123' + '100';

+----------------+
| '0123' + '100' |
+----------------+
| 223 |
+----------------+

■型変換

・cast() 関数は、ANSI 規程の変換関数です。

select cast(concat('123', '456') as signed);

+--------------------------------------+
| cast(concat('123', '456') as signed) |
+--------------------------------------+
| 123456 |
+--------------------------------------+

select cast(concat('-123', '456') as unsigned);

+-----------------------------------------+
| cast(concat('-123', '456') as unsigned) |
+-----------------------------------------+
| 18446744073709428160 |
+-----------------------------------------+

select cast(123 + 100 as char);

+-------------------------+
| cast(123 + 100 as char) |
+-------------------------+
| 223 |
+-------------------------+

2009年9月3日木曜日

eclipseでphp

1 IISを止める
[1]
2 xamppをインストール
http://www.apachefriends.org/jp/xampp-windows.html
ダウンロードのインスートラを落とす
xampp-win32-1.7.1-installer.exe
実行してインストール
[1-]

3 apacheを設定(ユーザーフォルダ)
C:\xampp\apache\conf\httpd.conf を編集

#LoadModule userdir_module modules/mod_userdir.so

#コメントアウトをはずしました
LoadModule userdir_module modules/mod_userdir.so

C:\xampp\apache\conf\extra\httpd-userdir.conf を編集

UserDir "My Documents/My Website"

#コメントアウトして書き換え ここから
#UserDir "My Documents/My Website"
UserDir "D:/httpd/*/public_html"
#コメントアウトして書き換え ここまで






apacheを再起動

4 phpを設定
phpinfoをみる
zend debuggerをダウンロード
http://downloads.zend.com/pdt/server-debugger/
ZendDebugger-5.2.15-cygwin_nt-i386.zip

[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

;コメントアウト ここから
;zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;コメントアウト ここまで
;追加 ここから
zend_extension_ts="C:\xampp\php\zendDebugger\php-5.2.x\ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1,192.168.0.0/24
zend_debugger.expose_remotely=always
;追加 ここから

5 eclipseを入れて設定
eclipseをダウンロード
http://mergedoc.sourceforge.jp/

ワークスペースを決める

http://journal.mycom.co.jp/column/ide/006/index.html
ウィンドウ>設定>php>PHP実行可能ファイル>追加

PHP サーバー>編集>パス・マッピング>追加

2009年8月24日月曜日

C# Datasetで設定されたコンボボックスの選択された内容を取得

コンボボックス cbo01 のデータソースが
this.cbo01.DataSource = this.Dataset01BindingSource;
のとき

System.Data.DataRowView view01 = (DataRowView)this.cbo01.SelectedItem;
と書くことで、view01にレコードが保存される

たとえば0番目のカラムの内容を表示したければ
MessageBox.Show(view01.Row.ItemArray[0].ToString());

2009年8月21日金曜日

C# コンボボックスを編集できなくする

コンボボックスのDropDownStyleプロパティを「DropDownList」にする

2009年8月20日木曜日

C# 変数等のデータ型を変更する

[C#]
//文字列をint型に変換
int i = int.Parse("100");

//文字列をlong型に変換
long l = long.Parse("100");

//文字列をfloat型に変換
float f = float.Parse("100.1");

//文字列をdouble型に変換
double d = double.Parse("100.1");

//文字列をbool型に変換
bool b = bool.Parse("True");

C#でアプリケーションを終了させる

C# でアプリケーションを終了させるには System.Environment.Exit() を使う。

Environment.Exit(0);

http://sonic64.com/2006-05-07.html

2009年8月17日月曜日

C# pathからファイル名を得る

// getfilename.cs

using System;
using System.IO;

public class GetFileName {
static void Main() {
string path1 = @"c:\windows\system32\notepad.exe";
string file1 = Path.GetFileName(path1);
Console.WriteLine(file1); // 出力例:notepad.exe

string path2 = "c:notepad.exe";
string file2 = Path.GetFileName(path2);
Console.WriteLine(file2); // 出力例:notepad.exe

string path3 = "http://www.atmarkit.co.jp/index.html";
string file3 = Path.GetFileName(path3);
Console.WriteLine(file3); // 出力例:index.html
}
}

C# 設定を使用する

// 設定する
ソリューションエクスプローラー > prorerties > 設定
で設定した変数を呼び出す

// 呼び出す
Properties.Settings.Default.hensu1

// 参照
http://msdn.microsoft.com/ja-jp/library/aa730869%28VS.80%29.aspx

C# ファイル関連

//C:\test.txtをC:\test1.txtに移動
//移動元と移動先が同じでも、例外はスローされない
//C:\test1.txtがすでにあるときは、例外がスローされる
System.IO.File.Move(@"C:\test.txt", @"C:\test1.txt");

//C:\test.txtをC:\test1.txtにコピー
//第3項にtrueを指定することにより、上書きを許可
System.IO.File.Copy(@"C:\test.txt", @"C:\test1.txt", true);

//C:\test.txtを削除
//指定したファイルが存在しなくても例外はスローされない
System.IO.File.Delete(@"C:\test.txt");

//属性の取得(FileAttributes列挙体を返す)
Console.WriteLine(System.IO.File.GetAttributes(@"C:\test.txt"));
//読み取り専用属性があるか調べる
if ((System.IO.File.GetAttributes(@"C:\test.txt") &
System.IO.FileAttributes.ReadOnly) ==
System.IO.FileAttributes.ReadOnly)
Console.WriteLine("読み取り専用属性があります。");

//作成日時の取得(DateTime値を返す)
Console.WriteLine(System.IO.File.GetCreationTime(@"C:\test.txt"));
//更新日時の取得(DateTime値を返す)
Console.WriteLine(System.IO.File.GetLastWriteTime(@"C:\test.txt"));
//アクセス日時の取得(DateTime値を返す)
Console.WriteLine(System.IO.File.GetLastAccessTime(@"C:\test.txt"));

//属性の設定
//読み取り専用属性を追加する
System.IO.File.SetAttributes(@"C:\test.txt",
System.IO.File.GetAttributes(@"C:\test.txt") |
System.IO.FileAttributes.ReadOnly);
//読み取り専用属性を削除する
System.IO.File.SetAttributes(@"C:\test.txt",
System.IO.File.GetAttributes(@"C:\test.txt") ^
System.IO.FileAttributes.ReadOnly);

//作成日時の設定(今の時間にする)
System.IO.File.SetCreationTime(@"C:\test.txt", DateTime.Now);
//更新日時の設定
System.IO.File.SetLastWriteTime(@"C:\test.txt", DateTime.Now);
//アクセス日時の設定
System.IO.File.SetLastAccessTime(@"C:\test.txt", DateTime.Now);

// C:\test.txtが存在するか調べる
if (!System.IO.File.Exists(@"C:\test.txt"))
{
Console.WriteLine("fileがないっす");
}

2009年8月10日月曜日

SQLサーバーのER(SI Object Browser)

SQLServerのIDENTITY型の初期値、増分などを指定する
①データ型に数値型(INTなど)を選択します。
②デフォルト値にて「IDENTITY(1, 1)」を選択し、初期値、増分値を変更します。

タイムスタンプ
①データ型にDATETIME
②デフォルト値に「(getdate())」

ユーザー名
①データ型にNVARCHAR
②デフォルト値に「(user_name())」

ホスト名
①データ型にNVARCHAR
②デフォルト値に「(host_name())」

2009年8月7日金曜日

C#の特殊ファイル

特殊フォルダ
Environment.GetFolderPath(Environment.SpecialFolder.Templates)

http://www.ipentec.com/document/document.aspx?page=csharp-special-folder
http://msdn.microsoft.com/ja-jp/library/system.environment.specialfolder%28VS.80%29.aspx


実行フォルダ
Application.StartupPath

C#で連想配列

Hashtableってのを使うようだ

using System.Collections;
private void Test01()
{
Hashtable ht = new Hashtable();
ht["Sunday"] = "日曜日";
ht["Monday"] = "月曜日";
}


http://www.atmarkit.co.jp/fdotnet/dotnettips/125hashtable/hashtable.html

2009年8月6日木曜日

T-SQLのデバッグ

SQLserverとVisual studio のリモート デバッグをセットアップする

1 サーバーにリモート デバッグ コンポーネントをインストール
rdbgsetup.exe をサーバーにインストール
SQLserver2005でないときは VS2005 のDVDの R:\x86 以下にある
SQLserver2005のときは既に入っている

2 サーバでリモート デバッグのアクセス許可を設定
windows認証にして、デバッグを行うクライアントのユーザーを sysadminにする
management studioの [サーバー名][セキュリティ] [ログイン]

3 サーバーでリモートデバッグモニタを実行する
スタートメニューからでOK
説明が重要!!

4 サーバーでリモートバッグモニタのアクセス許可を変更する
ツール>オプション

5 クライアントでプロセスにアタッチする
VSのツール>プロセスにアタッチ で修飾子に3の説明をみて入力
選択可能なプロセスが出てくるのでVisual Studio リモートデバッグモニタを選択する

6 クライアントでストアドプロシージャにステップインする
サーバーエクスプローラで該当するストアドプロシージャを右クリックして ストアドプロシージャにステップイン


http://msdn.microsoft.com/ja-jp/library/bt727f1t%28VS.80%29.aspx

2009年8月5日水曜日

SQLサーバのフォワードエンジニアリング (SI Object Browser ER)

SI Object Browser ER

SQLサーバのフォワードエンジニアリング

データベース>フォワードエンジニアリング で実行しようとすると
「ntwdblib.dllが足りない」
とのお言葉

1. ダウンロード
http://jp.dll-download-system.com/z/n-dlls-not-system-/ntwdblib.dll/details.html

2. 溶かして、'windows\system'にコピー
\C:\WINDOWS\system32\ にコピーした