Tech Days フォローアップ(その4)
今日は Tech Days のフォローアップです。
DML 操作、プロシージャ についてお知らせします。
・検索処理
3種類の問い合わせ処理についてお話をしました。
このあたりの使い分けについてはMSDNの記事 や ナオキさんの記事 を参考にしてください。
Tech days ではシンプルな実装 ( LINQ to Entities ) を紹介しました。
テキストボックスに入力した keyword をもとにフィルタリングして Grid に表示するプログラムのサンプルです。
内部的には Products テーブルと DrinkDetails テーブルをジョインして検索処理を行います。
String key = textBox1.Text;
IQueryable<DrinkProduct> dp;
dp = context.DrinkProducts;
if (!String.IsNullOrEmpty(key))
{
dp = drinkproducts.Where(t => t.ProductName.Contains(key));
}
dataGridView1.DataSource = dp;
ご参考:LINQ to Entities
ご参考:Entity SQL
・追加
追加処理は BEC をインスタンス化して Add メソッドを呼び出します。
内部的には Products テーブルと DrinkDetails テーブルに対して追加処理を行います。更新や削除も同様です。
DrinkProduct drinkproduct = r.DataBoundItem as DrinkProduct ;
context.AddToDrinkProducts( dp );
MessageBox.Show(" 追加に成功しました。", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
・削除
DrinkProduct drinkproduct = r.DataBoundItem as DrinkProduct;
context.DeleteObject( dp );
・更新
DrinkProduct dp = r.DataBoundItem as DrinkProduct ;
DrinkProduct udp = context.DrinkProducts.Where(d => d.ProductID.Equals(dp.ProductID)).First();
udp.ProductName = dp.ProductName;
udp.UnitPrice = dp.UnitPrice;
udp.Size = dp.Size;
udp.Picture = dp.Picture;
ご参考:オブジェクトを追加、変更、および削除する方法 ( Entity Framework )
次回はストアドプロシージャのご説明をします。
Comments
- Anonymous
February 12, 2009
PingBack from http://blog.a-foton.ru/index.php/2009/02/13/tech-days-%e3%83%95%e3%82%a9%e3%83%ad%e3%83%bc%e3%82%a2%e3%83%83%e3%83%97%ef%bc%88%e3%81%9d%e3%81%ae4%ef%bc%89/