.NETでUDPを使って通信する(UdpClientを使う)

前回はTCPを使って通信してみたので今回はUDPを使って通信するサンプルを書いてみました。 ichiroku11.hatenablog.jp .NETでUDPを使って通信するにはUdpClientを使います。Socketを使う方法はまたそのうち…というフラグ。 UdpClient クラス (System.Net.Sock…

.NETでTCPを使って通信する(TcpClientとTcpListenerを使う)

.NETで通信するプログラムに興味が出てきたので調べたりしています。ネットワークプログラミングと言うんですかね。まずはやっぱりTCPかなと思うので、TCPを使って通信する簡単なクライアントとサーバのサンプルコードを書いてみました。 .NETでTCPを使って…

SQL Server - OPENROWSETでJSONファイルを読み込んでOPENJSON

前回、OPENJSONを使ってJSON文字列を結果セットに変換してみました。 ichiroku11.hatenablog.jp そのあとにそういえば「JSONファイル」を読み込んでOPENJSONを使う方法を知らないなと思いました。検索してみると次の記事が見つかります。 Importing JSON fil…

SQL Server - OPENJSONは役に立つ

SQL Server 2016から手軽にJSONを扱えるようになっています。 MSDNなどを読みながら勉強している最中で全体を把握しているわけではないですが、SQL ServerのJSONサポートは次の2つの機能がメインなのかなと思います。 機能 概要 FOR JSON句 結果セットをJSON…

数値や文字列を右詰して前を「0(ゼロ)」で埋める(T-SQL)

T-SQLの小ネタです。 数値や文字列を右詰して前を「0(ゼロ)」で埋めた文字列を作ります。 前回はC#でやってみたので今回はT-SQLです。 ichiroku11.hatenablog.jp 数値の右詰と0埋め 数値の場合はSQL Server 2012から追加されているFORMAT関数を使います。C…

数値や文字列を右詰して前を「0(ゼロ)」で埋める(C#)

c#

C#の小ネタです。まぁいつも小ネタですが。 数値や文字列を右詰(右寄せ?)して前を「0(ゼロ)」で埋めた文字列を作ります。 数値の右詰と0埋め 数値の場合はstring.FormatメソッドかToStringメソッドで標準の10進数"D"数値書式指定を使います。"0"カスタ…

Entity Frameworkでenumのビット演算

FlagsAttributeを適用したenum(「ビットフラグ列挙体」と言うんですかね)に対して、Entity Frameworkでビット演算してみました。 ビット演算というよりHasFlagsメソッドを使えるよね?ということを確認した感じです。 FlagsAttribute クラス (System) Enum…

Entity FrameworkでTPT(Table Per Type)

今ごろ感ありますがEntity FrameworkでTPT(Table Per Type)を試しました。 データを追加する方法や取得する方法、どんなクエリになるのか、最終的には派生クラスではなく基本クラスだけを取得できるのかといったことを確認することが目的でした。 クエリは…

DateTime.AddMonthsとDateTime.AddYearsのメモ

ちょっとした発見。 DateTime.AddMonthsメソッドは、結果の月にその日が存在しない場合はその月の末日に調整してくれます。 文章にするといまいちなのでコードで例を。 // 2016/08/31 + 1ヶ月 // 2016年9月は30日までなので結果は2016/09/30になる new DateT…

T-SQL - BETWEENのメモ

BETWEENは自分ではあまり使わないのでたまに見かけるとあれ?含むの?含まないの?どっちだっけ?ってなります。 カップル専用アプリのことではないです。 between A and B A以上かつB以下。AもBも含む。 select * from (values(1), (2), (3), (4), (5)) as …

SQL Server - xmlデータ型のメソッド(query、value、nodes)を試す

そういえばT-SQLでxmlを扱ったことがないなーと思ったので、とりあえず基本の基本を押さえるために簡単なサンプルを書いてみましたというお話です。 まずxmlデータ型のメソッドはこれだけあります。 xml データ型のメソッド そのうちよく使うんじゃないかな…

.NETで名前付きパイプを試す(4) - 複数のクライアントに対応したサーバにする

もう少しNamedPipeClientStreamとNamedPipeServerStreamを試してみます。 前回のサーバは1つのクライアントの1つのリクエストを処理するだけでプログラムが終了しています。 ichiroku11.hatenablog.jp これではさすがにサーバとは言えないと思うので、もう少…

.NETで名前付きパイプを試す(3) - クライアントサーバ間で送受信する

前回に続いてもう少しNamedPipeClientStreamとNamedPipeServerStreamを使った名前付きパイプを試します。 ichiroku11.hatenablog.jp 今回はクライアント側のプログラムからサーバ側のプログラムにリクエストを送ってレスポンスを受け取るようにしてみます。…

.NETで名前付きパイプを試す(2) - クライアントからサーバにオブジェクトを送る

前回はクライアントからサーバに文字列を送ってみましたが、文字列だけでは少し寂しいので今回はオブジェクトを送信したいと思います。それでもまだ寂しいけど。 ichiroku11.hatenablog.jp 下準備 目的をクリアするために必要なクラスを準備していきます。 …

.NETで名前付きパイプを試す(1) - クライアントからサーバにメッセージを送る

.NET Frameworkを使って名前付きパイプでプロセス間通信を実装する方法が気になったので調べています。このエントリはその勉強の記録です。 名前付きパイプを実装するには、NamedPipeServerStreamとNamedPaipeClientStreamを使います。 NamedPipeServerStrea…

Visual Studioでソリューション内の複数のプロジェクトをデバッグ実行する

実行可能なプロジェクトが複数あるソリューションで、複数のプロジェクトをデバッグ実行する方法です。 今日知りました。 ソリューションのプロパティからスタートアッププロジェクトで「マルチスタートアッププロジェクト」を選びます。そして実行したいプ…

T-SQL - DROP IF EXISTS

先週SQL Server 2016の提供が開始されました。 新機能を調べだしたところですが、まずはとりあえずDROP IF EXISTSを試してみました。 開発中、試行錯誤してたりとかでテーブル構造がなかなか固まらず、テーブルを作っては消してまた作るということを繰り返す…

FlagsAttributeを指定したenumの文字列

c#

ものすごく小ネタですが、FlagsAttributeを指定したenumの文字列表現はどうなるんだろ?とふと気になって試してみました。 // トッピング [Flags] public enum Toppings { None = 0x00, // なし Nitamago = 0x01, // 煮卵 CharSiu = 0x02, // チャーシュー M…

ASP.NET MVC - FilterAttribute.OrderとFilterScopeによるフィルタの実行順を確認する

FilterAttribute.OrderとFilterScopeによるフィルタの実行順を確認します。 同じフィルタが複数ある場合に FilterAttributeのOrderプロパティの昇順(小さい値から大きい値の順序) FilterScopeの昇順 でフィルタがソートされて実行される、というあたりを確…

ASP.NET MVC - input要素のplaceholder属性に使うHtmlHelperの拡張メソッドを作ってみた

気持ち今さら感はありますが、input要素のplaceholder属性にテキストを出力するためのHtmlHelperの拡張メソッドを作ってみました。正直なところやってみて作りました!というほどではなかったんですが、まあ試してみたかったんです、ということで。 モデルの…

LINQ - 空のシーケンスでMin/Max/Averageを使ったときのメモ

LINQで空のシーケンスに対してMin/Max/Averageを使うとInvalidOperationExceptionが発生する場合があります。言われるとそっかと思うんですが、SQLの感覚もあってかうっかりやっちゃうかなあと思ったのでちょっとメモしておきます。 たとえば、intの空のシー…

SqlConnectionの接続タイムアウトを確認してみる

SQL Serverで単にタイムアウトと言っても接続タイムアウトとクエリタイムアウト(コマンドタイムアウト)の2つがあります。発生するタイミングが違いますし、それぞれ理解しておきたいなと思います。 まずはちょっと簡単に整理します。 接続タイムアウト 名…

SQL Server - 主キーの一覧を取得するクエリ

前回は外部キーの一覧を取得するクエリを書いてみました。 ichiroku11.hatenablog.jp 今回は外部キーのときと同じようにテーブル名やカラム名を含めて主キーの一覧を取得するクエリを書いてみました。 select i.name as [主キー名], ic.index_column_id as […

SQL Server - 外部キーの一覧を取得するクエリ

テーブル名やカラム名を含めて外部キーの一覧を取得するクエリです。探したら似たようなクエリが見つかる気もしますが練習もかねて書いてみました。また使うことがあるかなと。 select fk.name as [外部キー名], fkc.constraint_column_id as [外部キーカラ…

Entity Framework - 条件付きで関連エンティティを読み込む

Includeメソッドを使って関連エンティティを読み込むとき、読み込む関連エンティティをフィルタしたいことがあると思います。というかありました。 Includeメソッドで書けるのかなと思って調べましたがどうもできない様子。代替案がないかなと思って調べたと…

SQL Server - NULLを含んだ複合外部キーのメモ

複合外部キーを使うことになったんですが、外部キー制約を設定するカラムの1つの値がNULLの場合に想像していた動きと違ったのでメモを残しておきます。(想像と違うのはわたしだけかもですが) 次のようなテーブルがあったとします。SampleBに外部キー制約が…

Entity Framework - EXISTSを使ったサブクエリのサンプル

WHERE句にEXISTSを使うようなデータ取得をEntity Frameworkで実行したい場合、LINQのAnyメソッドを使うようです。想像通りという気もしますが適当な1対多のテーブルとデータで試して出力されるクエリを確認してみます。 まずはモデルとDBコンテキストを用意…

SQL Server - null以外の値でユニークにする

SQL Serverでnull以外の値でユニークにしたいときがあると思います。 先に方法を書くと「フィルター選択されたインデックス(filtered index)」を使うことでnull以外の値でユニークを実現できます。 フィルター選択されたインデックスの作成 ということで今…

jQuery.ajaxでJSON形式の空のレスポンスはエラー扱いになる

この前ちょっとはまったのでメモ。まさしくこれ。 jQuery Core 1.9 Upgrade Guide | jQuery Prior to 1.9, an ajax call that expected a return data type of JSON or JSONP would consider a return value of an empty string to be a success case, but r…

Entity Framework - ワイルドカード文字を使った文字列検索

Entity FrameworkでstringのContainsメソッド、StartsWithメソッド、EndsWithメソッドを使って文字列を検索すると、LIKE演算子で「%」を使ったselect文が作成されます。 MSDNとかのドキュメントっぽいものは見つけられませんでしたが、適当なエンティティとD…