Entity Framework Coreはじめました

EF Coreを試しはじめました。先はあまり考えていませんが、色々試したことを書き残していけるといいなと思います。とりあえず今回は最初なのでSQL Serverにあるデータを取得してみます。 データの用意 まずはSQL Server Management Studioでデータを用意して…

FORMATMESSAGE関数を試す

SQL Server 2016からFORMATMESSAGE関数が拡張されて、プレイスホルダーを使って文字列を組み立てられるようになりました。 FORMATMESSAGE (Transact-SQL) | Microsoft Docs C言語のprintfみたい感じですかね。たぶん。 文字列を埋め込むには%sを使います。 -…

STRING_SPLIT関数で文字列を分割する

SQL Server 2016から使えるSTRING_SPLIT関数を試してみます。 STRING_SPLIT (Transact-SQL) | Microsoft Docs この関数は1つ目の引数の文字列を2つ目の引数の文字で分割します。戻り値はvalueカラムを1つだけ持つ表形式の結果セットです。 -- ','で分割する …

SQL Server - 拡張イベントを使ってスロークエリを取得するクエリ(ファイル編)

前の記事では、拡張イベントを使ってスロークエリを取得しつつ次の2つのクエリを書いてみました。 ターゲットにリングバッファ(メモリ)を指定してセッションを作成するクエリ リングバッファに出力されたイベントデータを確認するクエリ ichiroku11.hatena…

SQL Server - 拡張イベントを使ってスロークエリを取得するクエリ

SQL Serverの拡張イベントを手っ取り早く試すにはこの記事が良いかなと思います。 クイック スタート: SQL Server の拡張イベント この記事もわかりやすくSSMSのGUI自体もわかりやすいので、簡単に拡張イベントを使えるかなと思います。簡単に使えてしまうの…

T-SQLでn個ずつのグループにわける

前回はn個のグループにわけるクエリを書いてみました。 ichiroku11.hatenablog.jp 今回はn個ずつになるようにグルーピングするクエリをROW_NUMBER関数を使って書いてみたいと思います。 ROW_NUMBER (Transact-SQL) | Microsoft Docs 前回と同じように11から2…

T-SQLでn個のグループにわける

NTILE関数を使うと簡単にデータをn個のグループにわけることができます。正確には、n個のグループにわけた場合のグループ番号を割り振ると言ったほうがいいかもしれません。 NTILE (Transact-SQL) | Microsoft Docs NTILE関数を使ったサンプルを書いてみます…

SQL Server - 拡張イベントで収集できるイベントデータを確認するクエリ

拡張イベントで収集できるイベントデータを確認するクエリです。 動的管理ビューを3つ使います。sys.dm_xe_packages、sys.dm_xe_objects、sys.dm_xe_object_columnsの3つ。 動的管理ビュー 概要 sys.dm_xe_packages (Transact-SQL) パッケージ一覧。イベント…

SQL Server - トレースイベントに対応する拡張イベントを確認するクエリ

拡張イベントを調べています。勉強した小ネタを残していこうと思います。 今回はトレースイベントに対応する拡張イベントを確認するクエリです。sys.trace_eventsとsys.trace_xe_event_mapを使います。 sys.trace_events (Transact-SQL) trace_xe_event_map …

T-SQL - OVER句のROWS句のサンプル

OVER句のROWS句がすごいなと思ったので、少し整理していくつかサンプルを残しておきます。 OVER 句 (Transact-SQL) OVER句を使うと行をグルーピングしたり、行に順位付けをしたり、行セットの範囲を指定したりといったことができます。 OVER句の括弧の中には…

Getterのみ自動実装プロパティの初期化子のメモ

c#

うっかりやってしまいそうだなと思ったのでサンプルを残しておきます。 C# 6.0からの機能に 自動実装プロパティの初期化子(Getterのみの自動実装プロパティ) ラムダ式本体によるプロパティの記述 があります。 使う側からするとどちらも同じGetterプロパテ…

Path.GetDirectoryNameでフォルダパスを取得

パス文字列からフォルダパスを取得したいときはPath.GetDirectoryNameを使います。 Path.GetDirectoryName メソッド (String) (System.IO) このメソッド名だとフォルダパスじゃなくてフォルダ名を取得できる感じが・・・というのは置いておいて。 上記にもサ…

ASP.NET MVC - 部分ビューにあるinput要素のname属性にプレフィックスを付ける

探していたことはまさにコレでした。 stackoverflow.com TemplateInfoもよくわかっていなかったので真似してサンプルを書いてみました。 やりたいこと まずはやりたいことを整理します。 次のようにAddressクラスのプロパティを2つ持つモデル、SampleInputMo…

.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を試してみました。 開発中、試行錯誤してたりとかでテーブル構造がなかなか固まらず、テーブルを作っては消してまた作るということを繰り返す…