Skip to content

Instantly share code, notes, and snippets.

View kiyokura's full-sized avatar

Kiyokura Narami kiyokura

View GitHub Profile
@kiyokura
kiyokura / DynamicInStatement.cs
Last active December 29, 2015 21:29
DapperでIN句にさくっとリストをバインドする
cn.Open();
var param = new
{
// IN句に並べたい値をリストとして積んでやる
AgeList = new List<int>() { 20, 38 }
};
var ret = cn.Query<UserEntity>("SELECT * FROM Users WHERE Age IN @AgeList ORDER BY ID", param).ToList();
@kiyokura
kiyokura / OracleDapperSample2.cs
Last active December 27, 2015 13:09
NETのboolをOracleのNUMBERのカラムにマッピングしたい(オブジェクトからパラメータにマッピングの場合)
void SomeMethod(Hoge filler)
{
using(var cn = new Oracle.DataAccess.Clinet.OracleConnection("接続文字列")){
cn.Open();
// -- NG NG NG NG NG NG --
// NUMBER型のカラムis_fooに与えるパラメータIsFooをboolで与えると例外
var r1 = cn.Query("SELECT * FROM Hoge WHERE is_foo = :IsFoo " , filler );
// -- NG NG NG NG NG NG --
@kiyokura
kiyokura / OracleDapperSample.cs
Last active March 2, 2016 02:02
OracleのNUMBERのカラムを.NETのboolにマッピングしたい(クエリからオブジェクトにマッピングの場合)
void SomeMethod()
{
using(var cn = new Oracle.DataAccess.Clinet.OracleConnection("接続文字列")){
cn.Open();
// -1 を 暗黙でtureとしてbool型にマッピングしてくれる。
var r1 = cn.Query<Hoge>("SELECT -1 as IsFoo FROM DUAL");
// 0 は false
var r2 = cn.Query<Hoge>("SELECT 0 as IsFoo FROM DUAL");
@kiyokura
kiyokura / gist:7249116
Created October 31, 2013 12:47
こんな感じで、Dapper使ってもGlimpse.AdoでトレースOK。
// SQL Server CEで試した例。SQL Serverの場合はプロバイダ名をSystem.Data.SqlClientに。
var factory = System.Data.Common.DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0");
using (var cn = factory.CreateConnection())
{
cn.ConnectionString = "接続文字列";
cn.Open();
var ret = cn.Query("SELECT * FROM users WHERE Age > @Age", new { Age = 20 });
foreach (var r in ret)
@kiyokura
kiyokura / gist:7248815
Created October 31, 2013 12:24
ODP.NETでGlimpse.Ado OKのパターン
// Glimpse.Ado OKのパターン
// DbFactoryからConnectionをCreateするようにする
var factory = System.Data.Common.DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
using (var cn = factory.CreateConnection())
{
cn.ConnectionString = "接続文字列";
cn.Open();
var cmd = cn.CreateCommand();
@kiyokura
kiyokura / gist:7248793
Created October 31, 2013 12:23
ODP.NETでGlimpse.Ado NGのパターン
// Glimpse.Ado NGのパターン
using (System.Data.Common.DbConnection cnOrg = new Oracle.DataAccess.Client.OracleConnection("接続文字列"))
{
using (var cn = new Glimpse.Ado.AlternateType.GlimpseDbConnection(cnOrg))
{
cn.Open();
var cmd = cn.CreateCommand();
cmd.CommandText = "select * from hoge";
@kiyokura
kiyokura / gist:7235828
Created October 30, 2013 16:37
Glimpse.Adoを利用する場合の例
// 接続文字列。環境に合わせてください。
var connectionString = "Data Source=\"c:\\users\\kiyokura\\documents\\visual studio 2012\\Projects\\WebApplication12\\WebApplication12\\App_Data\\Database1.sdf\"" ;
// SQL Server CEで試した例。SQL Serverの場合はSystem.Data.SqlClient.SqlConnectionを使ってください
using ( var cnOrg = new System.Data.SqlServerCe.SqlCeConnection (connectionString))
{
using ( var cn = new Glimpse.Ado.AlternateType.GlimpseDbConnection (cnOrg))
{
cn.Open();
@kiyokura
kiyokura / gist:7235805
Last active December 27, 2015 00:09
通常のADO.NETの例
// 接続文字列。環境に合わせてください。
var connectionString = "Data Source=\"c:\\users\\kiyokura\\documents\\visual studio 2012\\Projects\\WebApplication12\\WebApplication12\\App_Data\\Database1.sdf\"" ;
// SQL Server CEで試した例。SQL Serverの場合はSystem.Data.SqlClient.SqlConnectionを使ってください
using ( var cn = new System.Data.SqlServerCe.SqlCeConnection (connectionString))
{
cn.Open();
var cmd = cn.CreateCommand();
cmd.CommandText = "SELECT * FROM users WHERE Age > @Age";
@kiyokura
kiyokura / Web.Config.xml
Created October 30, 2013 15:11
Glimpseのサーバサイド実行の設定(Web.Configの断片)
<runtimePolicies>
<ignoredTypes>
<add type="Glimpse.AspNet.Policy.LocalPolicy, Glimpse.AspNet"/>
</ignoredTypes>
</runtimePolicies>
protected void Page_PreInit(object sender, EventArgs e)
{
System.Diagnostics.Debug.Assert(false, "Debug.Assertしてみた(Assert失敗)");
System.Diagnostics.Debug.Write("Debug.Writeしてみた");
System.Diagnostics.Trace.TraceInformation("System.Diagnostics.Trace.TraceInformationしてみた");
System.Diagnostics.Trace.TraceWarning("System.Diagnostics.Trace.TraceWarningしてみた");
System.Diagnostics.Trace.TraceError("System.Diagnostics.Trace.TraceErrorしてみた");
}