2014/09/20

[jQuery] 複数の data をサーバー(ashx)に渡す

以下のように渡してしまうと、code1 しか渡すことができず、code2 を参照すると null 参照となってしまう。
$.ajax({
 type: "POST",
 url: "http://exsample.com/code.ashx",
 data: { "code1": $("#txtCode1").val() },
 data: { "code2": $("#txtCode2").val() },
 dataType: "json",
 cache: true,
 success: function (result) {
  hoge(result);
 },
 error: function (obj, err) {
 }
});
以下のように Json の変数に整形すると値を渡すことができる。
受け取り側は HttpContext の Request で取得する。
var dat = { "code1": $("#txtCode1").val(), "code2": $("#txtCode2").val() };
$.ajax({
 type: "POST",
 url: "http://exsample.com/code.ashx",
 data: dat,
 dataType: "json",
 cache: true,
 success: function (result) {
  hoge(result);
 },
 error: function (obj, err) {
 }
});

[C#] DataTable の Row に対して LINQ とラムダによる検索をする

DataTable を使用している業務システムは多いものだが、foreach で回しているケースも少なくない。.NET Framework のバージョンが古い場合はどうしようもないが、バージョンだけ上がっている場合は LINQ や ラムダを使用して高速に検索することができる。
var dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
for (var i = 0; i <= 10; i++)
{
 var dr = dt.NewRow();
    dr["Name"] = "hoge" + i.ToString();
    dt.Rows.Add(dr);
}

var ret = 0;

// Name の末尾が 0 であるレコードをカウントする(LINQ)。
ret = (from x in dt.AsEnumerable()
  where Convert.ToString(x["Name"]).EndsWith("0")
        select x).Count();
        Console.WriteLine(ret.ToString());

// Name の末尾が 0 であるレコードをカウントする(ラムダ)。
ret = dt.AsEnumerable().Count(x => Convert.ToString(x["Name"]).EndsWith("0"));
  Console.WriteLine(ret.ToString());

// 出力 : 2

2014/09/17

[WinMerg] 行番号表示

デフォルト状態では行番号が表示されていないのだが、実はメニューから設定する。


[表示] - [行番号を表示 (N)]

[C#] DataRow の「アクセスできない保護レベル」

DataRow 型を初期化する際、つい以下のように記述しがちだが、エラーが出てしまう。


'System.Data.DataRow.DataRow(System.Data.DataRowBuilder)' はアクセスできない保護レベルになっています。

以下のように記述する。
// エラー
var dr1 = new DataRow();
// 初期化成功
var dr2 = new DataTable().NewRow();

2014/09/10

[Explzh 64bit] サーバーに 7-ZIP64.DLL が見つかりません。


Explzh (64bit) のヘルプから「アーカイバ DLL の自動アップデート」を実行し、7-Zip の DLL しようとすると失敗する。サイトには以下のサイトより 64bit 版 7-zip64.dll をダウンロードして、システムフォルダに配置しろとの記述がある。

 綾川的趣味之接続集
http://homepage1.nifty.com/Ayakawa/ 

Windows 7 64bit 環境の場合、C:\Windows\SysWOW64 にコピーしろと書いてあるのだが( http://www.ponsoftware.com/archiver/help/X64DLL.htm )、実際にはなぜか C:\Windows\System32 に配置しないと動作しない……。
Related Posts Plugin for WordPress, Blogger...