以前、
⇒【DB2】DB2でLINQを使う(のに失敗)
⇒【DB2】DB2でLINQを使う(準備が整う)
というのを書きました。
で、もしかすると別の案件で.NET+DB2っていうのが出てきそうな感じなので、
今日は仕事中に堂々と"調査"しました。
基本はこの↓ページに書かれていることをやります。
⇒Develop a sample application using LINQ programming and the ADO.NET Entity Framework with IBM DB2, IDS, and U2 servers
まず、新規プロジェクトを作成します。
※設定する値等は、参照するdeveloperWorksの記事に極力合わせます。
作成するWindowsFormはこんな感じになります。
ComboBox:1コ
DataGridView:1コ
Button:2コ
Entity Data Modelはこんな感じで進めていきます。
「データベースから生成」を選択。
「新しい接続」ボタンをクリック。
下記画面のように選択します。
接続先のサーバーはとりあえずlocalhost。
ユーザーはdb2admin。
接続先データベースはSAMPLEに変更。
設定が終わった「テスト接続」をクリック。
問題が無ければ、接続テスト完了。

「次へ」ボタンを押すとDBと接続を開始します。
接続中・・・・
データベースオブジェクトを選択。
Entityモデルが生成されました。
で、こっからはソースコードの補足。
■closeボタンの実装(C#)
private void closeForm_Click(object sender, EventArgs e)
{
m_context.Dispose();
Close();
}
|
■フォームのロード処理の実装(C#)
private void Form1_Load(object sender, EventArgs e)
{
m_context = new SAMPLEEntities();
// SELECT * FROM EMPLOYEE のイメージ
var query = from d in m_context.EMPLOYEE
select d;
try
{
// ComboBoxに設定するカラム(データ)
this.comboBox.DisplayMember = "FIRSTNME";
this.comboBox.DataSource = query;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
|
■ComboBoxが選択された際の実装(C#)
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
EMPLOYEE empList = (EMPLOYEE)this.comboBox.SelectedItem;
// SELECT * FROM EMPLOYEE E, EMP_PHOTO EP
// WHERE EP.EMPNO = E.EMPNO のイメージ
var query = from o in m_context.EMP_PHOTO
where o.EMPNO == empList.EMPNO
select o;
// データグリッドビューに設定
dataGridView.DataSource = query;
dataGridView.AutoResizeColumns(
DataGridViewAutoSizeColumnsMode.AllCells);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
|
この実装で、画面に何が出てくるかはお楽しみです♪
