using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DataBindingTest3
{
public partial class Form1 : Form
{
DataSet dataSet;
DataTable dataTable;
public Form1()
{
InitializeComponent();
Init();
InitMenu();
DoWork();
}
private void DoWork()
{
//値段が高い順にソートする
DataTable dt = GetSortedDataTable(dataSet.Tables["メニュー"], "値段 DESC");
}
static DataTable GetSortedDataTable(DataTable dt, string sort)
{
DataTable table = dt.Clone(); //スキーマと制約をクローンしている
DataRow[] row = dt.Select(null, sort);
foreach (var item in row)
{
DataRow addRow = table.NewRow();
addRow.ItemArray = item.ItemArray;
table.Rows.Add(addRow);
}
return table;
}
private void InitMenu()
{
DataRow dr = dataSet.Tables["メニュー"].NewRow();
dataSet.Tables["メニュー"].Rows.Add(new object[] { "味噌ラーメン", 700 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "醤油ラーメン", 650 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "チャーハン", 550 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "麻婆豆腐", 630 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "ニラ炒め", 750 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "天津飯", 600 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "焼肉定食", 850 });
dataSet.Tables["メニュー"].Rows.Add(new object[] { "ラーメン定食", 800 });
}
private void Init()
{
dataTable = new DataTable("メニュー");
dataTable.Columns.Add("名前", typeof(string));
dataTable.Columns.Add("値段", typeof(int));
dataTable.Columns.Add("価格(税込)", typeof(int), "値段 + 値段*0.05");
dataSet = new DataSet("中華飯店");
dataSet.Tables.Add(dataTable);
}
}
}
最終更新:2012年09月04日 23:42