佐々木屋

技術的なことから趣味まで色々書きます

ポストバック判断まとめ(備忘)

ランキング参加中エンジニアグループランキング参加中プログラミングなんか同じこと何回も調べるので備忘。 初回実行時、フルポストバック、パーシャルポストバックのまとめ表。※〇:True ✕:False 項目 IsPostBack IsInAsyncPostBack 初回実行時 ✕ ✕ パーシ…

UpdatePanelからのPostBackを判断する方法

ランキング参加中エンジニアグループランキング参加中プログラミングUpdatePanel利用でConditionalモードのポストバックで、通常のフルポストバックと(submit)とパーシャルポストバックを見分ける方法です。 ScriptManagerのIsInAsyncPostBackプロパティを…

回復環境が見つかりません対処法

.entry-content img { border : 1px solid gray; } Windows10には初期状態に戻す「回復」という機能がありますが、それが以下のようなエラーになる場合の対処法です。 Windows REを有効化する 回復環境であるWindows REが無効化されているかどうかを確認しま…

GCPアカウントの認証と設定

GCPの認証関連について説明します。 【共通】gcloud CLIの初期化 gcloud initなお、ブラウザベースの承認フローが開始されないようにするには、以下のようにフラグを追加します。 gcloud init --no-launch-browser 【共通】ログアウト gcloud auth revoke GC…

gcloud CLI環境構築

WindowsへのGoogle Cloud CLIのインストールについての備忘です。 Google Cloud CLIとは? gcloud、gsutil、bq コマンドライン ツールが含まれた、GCP(Google Cloud Platform)のリソース管理ツールのことです。 WebブラウザでのGUI操作ではなく、PowerShel…

NULLを考える②(COALESCE関数)

前回NULLの扱いで、NULLIF関数の話をしました。 これを使うと簡単に0除算エラーの対策が可能になります。 SELECT col_a / NULLIF(col_b, 0) FROM SomeTable 演算でNULLが来た場合はNULLを返す仕様をそのまま利用する形です。基本形はこれだけど、これだと結…

型変換は何を使う?(値型⇒String型)

今回は値型⇔string型です。共通認識は前回と一緒です。 VB.NETのCIntやCDecなどのC●●●は、CTypeと等価なので全てCTypeで検証 時間計測はSystem.Diagnostics名前空間のStopwatchクラスを利用 繰り返し回数maxは10,000,000回とする それぞれを3回ずつ実行する…

管理者権限で自動実行されない・・・

Windows7と8(8.1)まではスタートアップから問題なく管理者権限で実行できていましたが、Windows10からは実行不可となっています。UACを解除したり、アプリケーションマニフェストを変更したりしてみましたが効果ナシ・・・。ということで、別の方法を模索…

トリガーの登録

SQLServerのトリガ登録の覚えです。INSERTやUPDATEなどでテーブルに変更があった場合に処理を呼ぶ場合に使用するのが「トリガ」です。 トリガーはテーブルごとの設定になります。 CREATE TRIGGER [ トリガー名 ] ON [ 対象テーブル名 ] AFTER { [ INSERT] , …

iPhoneのSafari対応 Javascriptからクリップボードを設定

会社の携帯が変更になるようで、それに伴い色々設定作業が入ります。 設定作業自体は部下にやらせるとして、やはり不用意にパスワードなどは見せたくないわけで。そうした時にパスワードをクリップボード経由で扱えばいいのですが、iPhoneのクリップボードは…

MIMETypeの取得

ファイルのMIMETypeを取得する方法です。 .NET Frameworkによって違いますので、お好みの方をどうぞ。 .NET Framework4.5以上 System.Web.MimeMappingクラスのGetMimeMappingメソッドへファイル名を渡すことで取得可能です。 System.Web.MimeMapping.GetMime…

IIS管理外の画像ファイルを表示させる

ASP.NETでIIS管理内のディレクトリの画像ファイルをImageコントロールへ動的に表示させるためには以下で簡単にできますが、 img.ImageUrl = ”相対パス” これを別のディレクトリに置いた画像を表示させたい場合は、System.Drawing名前空間のBitmapクラスへイ…

Strategyパターン

デザインパターンの中でもよく見るものですが、オブジェクト指向が分からないとチンプンカンプンになります。「戦略」という意味で、メソッドなどにちりばめられた静的なアルゴリズムを、ifやswitch(VB.NETはSelect Case)などの条件分岐で動的にアルゴリズ…

オブジェクト指向の導入

課題 手続き型でよく見る配列に情報を持つ場合(カンマ区切りなども含めて)があります。一番の問題は何番目に何のデータを保持しているのかが分かりにくいということです。これは非常に危険なデータの持ち方でもあります。 string[] person = new string[2]…

Sys.Extended.UI.ModalPopupBehaviorがnullになる件

ASP.NET Ajaxネタですが、ネットで同じように困った方が見つからず、海外サイトでようやく回避策を見つけたので備忘として載せておきます。 というか、これだけ日本語のサイトが出てこないと、正直私が何か間違っているのか???と不安になります・・・。も…

Facadeパターン

Facadeパターンは現在でもしばしば使われるくらい、結構メジャーなパターンです。Facadeは「玄関」や「窓口」と言われ、その名の通りプログラムの各所から利用される一つのクラスを仲介するパターンです。利用されるクラスが将来変更される可能性がある場合…

静的クラスとシングルトン

インスタンスを複数作成しないで、どのクラスからも同じインスタンスを見に行くといった場合は静的クラスを利用します。VB.NETの場合はモジュールがほぼ同じような役割(全く一緒ではない)です。 public static class StaticClass { public static string U…

ここがダメだよ!VB.NET⑤(静的クラスが無いのよ)

そうなんです。VB.NETには静的クラスが無いんです。「モジュールがあるやん?」と思った方。 VB.NETのモジュールがC#の静的クラスとよく混同されますが、残念ながら100%同じというわけではないのです。 呼び出し方 静的クラスの場合、メンバーの呼び出し…

デザインパターン

以下に一つでも当てはまる方は、プログラミング設計を少し勉強した方が良いかもしれません。・最初は問題ないが、だんだん読みづらいコードにある ・スパゲティコードになってしまう ・オブジェクト指向の恩恵を生かしきれていない ・コメントが無いとさっぱ…

GroupByメソッド③

GroupByメソッドはクラスコレクション以外、通常のarrayコレクションでも使用可能です。 List<string[]> lst = new List<string[]> { new string[]{ "1", "25", "5", "3000"}, new string[]{ "1", "31", "10", "4000"}, new string[]{ "2", "31", "98", "12800"}, new string[]{ </string[]></string[]>…

GroupByメソッド②

GroupByメソッドには複合キーを指定することも可能です。複合キーの指定の仕方は2通りあり、new(VB.NETはNew With)による匿名型で指定する方法とTuple.Createで指定する方法があります。 List<Uriage> lst = new List<Uriage>() { new Uriage{KaisyaCD="1",SyainCD = "25"</uriage></uriage>…

GroupByメソッド①

GroupByメソッドはLINQの中では少し特殊(私だけか?)で、単純なlistやarrayのようなコレクションでは利用しません。コレクションコレクションの中にコレクションが格納されているような場合の集計に非常に便利な機能となります。複雑な集計を簡単に書くこ…

SelectManyメソッド

単純な配列に対して処理する場合は、SELECTメソッドで処理できますが、配列に配列を持つようなコレクションは少し面倒です。例えば、 List<string[]> values = new List<string[]> {new string[] { "京都府", "京都市"}, new string[] { "奈良県", "奈良市"}, new string[] { "大</string[]></string[]>…

LINQによる遅延評価

イテレータによる遅延評価と同様で、LINQでも遅延評価を実装することが出来ます。例えば、単純に1秒待つメソッド関数があるとします。 private int testFunction(int v) { Thread.Sleep(1000); return v * 2; } Private Function testFunction(ByVal v As I…

判定メソッド(Any、All、Contains)

コレクションに対して、ある条件を満たすような要素が存在するかどうかを判定するメソッドです。以下のコレクションに対して実行してみます。 int[] values = { 1, 9, 5, 6, 8, 6, 2, 5, 3 }; Dim values As Integer() = {1, 9, 5, 6, 8, 6, 2, 5, 3} Anyメ…

無意味なスコープ

変数スコープは出来るだけ短くするとバグの発生を抑えることができます。 課題① 変数iはメソッドの最初の方に宣言されていますが、実際はfor文でしか使用されていません。 int i; //処理① for (i = 0; i <= 10; ++i) { //処理② } Dim i As Integer '処理① Fo…

インデックス付きSelectメソッド

コレクションの要素を処理する際、ナンバリングが必要なことがたまにあります。 通常であれば、以下のようにfor文を使ってナンバリングするのでしょうが・・・。 string[] values = { "京都", "奈良", "大阪", "兵庫", "滋賀", "和歌山" }; var res = new Li…

NULLを考える①(NULLIF関数)

データベースを扱う上で必ずと言っていいほどお世話になる「NULL」さん。何もないという意味ですが、C#などのプログラミング言語に比べると、SQLのNULLは少し「できる奴」だと個人的には思います。ということで、NULLを扱う関数を全てではありませんが少し考…

集合メソッド(Union、Except、Intersect)

複数のコレクションに対して集合を提供します。 Unionメソッド(和集合) 2つのコレクションの和集合を返します。和集合とは、集合A、集合Bが定義されている場合、A又はBどちらか一方の集合に属する集合全体「A∪B」のことを指します。 string[] value…

取得メソッド②(Skip、Take、SkipWhile、TakeWhile)

コレクションの特定要素を取得する際に利用します。Selectメソッドの場合だとコレクションを上から順番に評価していきますが、予め取得したい要素の場所が決まっているような場合は走査が無駄になる場合があります。その場合はこれらのメソッドを活用します…