class Program
{
static void Main(string[] args)
{
SqlConnection thisConnection = new SqlConnection(
@"Data Source=.\SQLEXPRESS;" +
@"AttachDbFilename='C:\SQL Server 2000 Sample Databases\NORTHWND.MDF';"
+
@"Integrated Security=true;Connect Timeout=30;User Instance=true");
DataSet thisDataSet = new DataSet();
//为每一张表创建一个DataAdapter对象,然后填充DataSet
SqlDataAdapter custAdapter = new SqlDataAdapter(
"select * from Customers", thisConnection);
SqlDataAdapter orderAdapter = new SqlDataAdapter(
"select * from Orders", thisConnection);
custAdapter.Fill(thisDataSet, "Customers");
orderAdapter.Fill(thisDataSet, "Orders");
//创建DataRelation对象并将其连接到DataSet上。注:Customers是主表,Orders是子表
DataRelation custOrderRel = thisDataSet.Relations.Add("CustOrders",
thisDataSet.Tables["Customers"].Columns["CustomerID"],
thisDataSet.Tables["Orders"].Columns["CustomerID"]);
foreach (DataRow custRow in thisDataSet.Tables["Customers"].Rows)
{
Console.WriteLine("Customer ID:" + custRow["CustomerID"] +
"Name:" + custRow["CompanyName"]);
//给定父表中的一行,获取子表与其对应的所有行,如果父表的CustomerID为5,则下面这句可以翻译成
//select * OrderID from Orders where CustomerID=5
foreach (DataRow orderRow in custRow.GetChildRows(custOrderRel))
{
Console.WriteLine("Order ID:" + orderRow["OrderID"]);
}
}
thisConnection.Close();
Console.WriteLine();
}
}
{
static void Main(string[] args)
{
SqlConnection thisConnection = new SqlConnection(
@"Data Source=.\SQLEXPRESS;" +
@"AttachDbFilename='C:\SQL Server 2000 Sample Databases\NORTHWND.MDF';"
+
@"Integrated Security=true;Connect Timeout=30;User Instance=true");
DataSet thisDataSet = new DataSet();
//为每一张表创建一个DataAdapter对象,然后填充DataSet
SqlDataAdapter custAdapter = new SqlDataAdapter(
"select * from Customers", thisConnection);
SqlDataAdapter orderAdapter = new SqlDataAdapter(
"select * from Orders", thisConnection);
custAdapter.Fill(thisDataSet, "Customers");
orderAdapter.Fill(thisDataSet, "Orders");
//创建DataRelation对象并将其连接到DataSet上。注:Customers是主表,Orders是子表
DataRelation custOrderRel = thisDataSet.Relations.Add("CustOrders",
thisDataSet.Tables["Customers"].Columns["CustomerID"],
thisDataSet.Tables["Orders"].Columns["CustomerID"]);
foreach (DataRow custRow in thisDataSet.Tables["Customers"].Rows)
{
Console.WriteLine("Customer ID:" + custRow["CustomerID"] +
"Name:" + custRow["CompanyName"]);
//给定父表中的一行,获取子表与其对应的所有行,如果父表的CustomerID为5,则下面这句可以翻译成
//select * OrderID from Orders where CustomerID=5
foreach (DataRow orderRow in custRow.GetChildRows(custOrderRel))
{
Console.WriteLine("Order ID:" + orderRow["OrderID"]);
}
}
thisConnection.Close();
Console.WriteLine();
}
}