using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace _7CreateDataSet
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
void BindDataSocurce()
{
dataGridView1.DataSource = myDataSet.Tables["tbl_Parent"].DefaultView;
dataGridView2.DataSource = myDataSet.Tables["tbl_Child"].DefaultView;
}
DataSet myDataSet;//定义一个数据集
private void button1_Click(object sender, EventArgs e)
{
myDataSet = new DataSet("myDataSet");//实例化一个数据集
DataTable dtParent = new DataTable("tbl_Parent");
DataTable dtChild = new DataTable("tbl_Child");
//添加两张表
myDataSet.Tables.Add(dtParent);
myDataSet.Tables.Add(dtChild);
}
private void button2_Click(object sender, EventArgs e)
{
try
{
//添加列
myDataSet.Tables["tbl_Parent"].Columns.Add("id", typeof(Int32));
myDataSet.Tables["tbl_Parent"].Columns.Add("name", typeof(String));
myDataSet.Tables["tbl_Child"].Columns.Add("id", typeof(Int32));
myDataSet.Tables["tbl_Child"].Columns.Add("add", typeof(String));
myDataSet.Tables["tbl_Child"].Columns.Add("sex", typeof(String));
myDataSet.Tables["tbl_Child"].Columns.Add("RelactionID", typeof(Int32));
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
private void button3_Click(object sender, EventArgs e)
{
try
{
//添加行
DataRow drP = myDataSet.Tables["tbl_Parent"].NewRow();
drP["id"] = 1;
drP["name"] = "xiage";
myDataSet.Tables["tbl_Parent"].Rows.Add(drP);
drP = myDataSet.Tables["tbl_Parent"].NewRow();
drP["id"] = 2;
drP["name"] = "xiagezhao";
myDataSet.Tables["tbl_Parent"].Rows.Add(drP);
DataRow drC = myDataSet.Tables["tbl_Child"].NewRow();
drC["id"] = 1;
drC["add"] = "江苏邳州";
drC["sex"] = "Man";
drC["RelactionID"]=1;
myDataSet.Tables["tbl_Child"].Rows.Add(drC);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
BindDataSocurce();
}
private void button4_Click(object sender, EventArgs e)
{
//添加唯一性
System.Data.UniqueConstraint uc = new UniqueConstraint("唯一性", myDataSet.Tables["tbl_Parent"].Columns["id"]);
myDataSet.Tables["tbl_Parent"].Constraints.Add(uc);
}
private void button5_Click(object sender, EventArgs e)
{
//添加外键
ForeignKeyConstraint fkc = new ForeignKeyConstraint("新建外键", myDataSet.Tables["tbl_Parent"].Columns["id"], myDataSet.Tables["tbl_Child"].Columns["id"]);
myDataSet.Tables["tbl_Child"].Constraints.Add(fkc);
}
private void button6_Click(object sender, EventArgs e)
{
myDataSet.Tables["tbl_Parent"].Rows[0][0] = "3";
BindDataSocurce();
}
private void button7_Click(object sender, EventArgs e)
{
//DataRow dr = myDataSet.Tables["tbl_Parent"].Rows[0];
//dr["name"] = "Alice";
//listBox1.Items.Add("行状态:"+dr.RowState.ToString());
//dr.AcceptChanges();
//listBox1.Items.Add("行状态:"+myDataSet.Tables["tbl_Parent"].Rows[0].RowState.ToString());
listBox1.Items.Add("行状态:" + myDataSet.Tables["tbl_Parent"].Rows[0].RowState.ToString());
myDataSet.Tables["tbl_Parent"].Rows[0][1] = "Alice";
listBox1.Items.Add("行状态:" + myDataSet.Tables["tbl_Parent"].Rows[0].RowState.ToString());
myDataSet.Tables["tbl_Parent"].AcceptChanges();
listBox1.Items.Add("行状态:" + myDataSet.Tables["tbl_Parent"].Rows[0].RowState.ToString());
BindDataSocurce();
//System.Data.DataRowState.
}
private void button8_Click(object sender, EventArgs e)
{
// 添加表关系
//
//
// 摘要:
// 获取用于将表链接起来并允许从父表浏览到子表的关系的集合。
//
// 返回结果:
// 包含一个 System.Data.DataRelation 对象集合的 System.Data.DataRelationCollection。如果
// System.Data.DataRelation 对象不存在,将返回空集合。
myDataSet.Relations.Add("relation", myDataSet.Tables["tbl_Parent"].Columns["id"], myDataSet.Tables["tbl_Child"].Columns["RelactionID"]);
DataRow dr = myDataSet.Tables["tbl_Parent"].Rows[0];
DataRow[] ArrayDr = dr.GetChildRows("relation");
foreach(DataRow r in ArrayDr)
{
listBox1.Items.Clear();
listBox1.Items.Add(r[1]);
}
DataRow dr2 = myDataSet.Tables["tbl_Child"].Rows[0];
DataRow[] ArrayDr2 = dr2.GetParentRows("relation");
foreach (DataRow r in ArrayDr2)
{
listBox1.Items.Add(r[1]);
}
}
}
}