39. public IList<EmployeeEntity> FindAll()
{
using (var cn = new SqlCeConnection(connectionString))
{
cn.Open();
var sql = "select ID, Name , Age , Email From Employee;"
var cmd = new SqlCeCommand(sql , cn);
var result = new List<EmployeeEntity>();
using (var dr = cmd.ExecuteReader())
{
while (dr.Read())
{
result.Add(new EmployeeEntity()
{
ID = (int)dr["ID"],
Name = (string)dr["Name"],
Age = (int)dr["Age"],
Email = (string)dr["Email"]
});
}
}
return result;
}
}
40. var cmd = new SqlCeCommand(sql , cn);
var result = new List<EmployeeEntity>();
using (var dr = cmd.ExecuteReader())
{
while (dr.Read())
{
result.Add(new EmployeeEntity()
{
ID = (int)dr["ID"],
Name = (string)dr["Name"],
Age = (int)dr["Age"],
Email = (string)dr["Email"]
});
}
}
①実行の下準備(コマンドオブジェクト作成)
②実行して
③型変換とかしながらクエリの結果をオブジェクトにマッピング
カ
ラ
ム
が
増
え
る
と
も
っ
と
面
倒
に
!
42. public IList<EmployeeEntity> FindAll()
{
using (var cn = new SqlCeConnection(connectionString))
{
cn.Open();
var sql = "select ID, Name , Age , Email From Employee;"
return cn.Query<EmployeeEntity>(sql).ToList();
}
}
48. public EmployeeEntity FindByID(int id)
{
using (var cn = new SqlCeConnection(connectionString))
{
cn.Open();
var sql = "select ID, Name , Age , Email From Employee where ID = @ID;"
var cmd = new SqlCeCommand(sql, cn);
var param = cmd.CreateParameter();
param.ParameterName = "ID";
param.SqlDbType = System.Data.SqlDbType.Int;
param.Direction = System.Data.ParameterDirection.Input;
param.Value = id;
cmd.Parameters.Add(param);
var result = new List<EmployeeEntity>();
using (var dr = cmd.ExecuteReader())
{
if (dr.Read())
{
return new EmployeeEntity()
{
ID = (int)dr["ID"],
Name = (string)dr["Name"],
Age = (int)dr["Age"],
Email = (string)dr["Email"]
};
}
else
{
return null;
}
}
}
}
49. var sql =
"select ID, Name , Age , Email From Employee where ID = @ID;"
var cmd = new SqlCeCommand(sql, cn);
var param = cmd.CreateParameter();
param.ParameterName = "ID";
param.SqlDbType = System.Data.SqlDbType.Int;
param.Direction = System.Data.ParameterDirection.Input;
param.Value = id;
cmd.Parameters.Add(param);
①Parameterオブジェクトを作成して
②Parameterオブジェクトに値その他を設定
③Commandオブジェクトにパラメータをセット
パラメータの数だけ、
これをやらないといけない!!!
51. public EmployeeEntity FindByID(int id)
{
using (var cn = new SqlCeConnection(connectionString))
{
cn.Open();
var sql = "select ID, Name , Age , Email From Employee where ID = @ID;"
return cn.Query<EmployeeEntity>( sql , new { ID = id }).SingleOrDefault();
}
}
52. return cn.Query<EmployeeEntity>( sql ,
new { ID = id })
.SingleOrDefault();
Queryメソッドの第二引数に、
パラメータと名前の一致するプロパティを持ったオ
ブジェクトを渡してやるだけ
(匿名クラスでもOK)
パラメータが増えたら…
new {
ID = id,
Name = "ほげほげ",
Age = 17
}