ADO.NET笔记——使用DataSet返回数据
2015-03-20 20:23
405 查看
相关知识:
DataSet和DataAdapter的内部结构:
View Code
DataSet和DataAdapter的内部结构:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace ConsoleApplication10 { class Program { static void Main(string[] args) { string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root"; SqlConnection conn = new SqlConnection(strConn); DataSet ds = new DataSet(); string strCmd1 = "SELECT ProductCategoryID,Name FROM Production.ProductCategory"; SqlDataAdapter da1 = new SqlDataAdapter(strCmd1, conn); // 将第一个查询结果集合填入DataSet中,并且将DataTable命名为"Category" da1.Fill(ds, "Category"); string strCmd2 = "SELECT ProductSubcategoryID,ProductCategoryID,Name From Production.ProductSubcategory"; SqlDataAdapter da2 = new SqlDataAdapter(strCmd2, conn); // 将第二个查询结果集合填入DataSet中,并且将DataTable命名为"Subategory" da2.Fill(ds, "Subcategory"); // 使用视图 // 打印表中的数据 Console.WriteLine("主类别表:"); DataTable dt1 = ds.Tables["Category"];//获得Category表 DataView dv1 = new DataView(dt1); //创建视图 dv1.Sort = "ProductCategoryID ASC"; //设置排序规则 foreach (DataRowView drv in dv1) { Console.WriteLine("{0}:{1}", drv[0], drv["Name"]); } Console.WriteLine(""); Console.WriteLine("过滤后的子类别表:"); DataTable dt2 = ds.Tables["Subcategory"]; DataView dv2 = new DataView(dt2); dv2.RowFilter = "ProductSubcategoryID>10";//设置过滤条件 dv2.Sort = "ProductSubcategoryID ASC"; foreach (DataRowView drv in dv2) { Console.WriteLine("{0}:{1}", drv[0], drv["Name"]); } Console.WriteLine(""); // 在两个表之间建立关联 DataRelation relation = new DataRelation("ProductCategory_ProductSubcategory", dt1.Columns["ProductCategoryID"], dt2.Columns["ProductCategoryID"]); ds.Relations.Add(relation);//将关联添加到DataSet的集合中 try { for (int i = 0; i < dt1.Rows.Count; i++) { DataRow dri = dt1.Rows[i]; //根据关联找到数据相关的子类别数据 DataRow[] subRows = dri.GetChildRows(relation); Console.WriteLine("{0}的子类别信息:", dri["Name"]); foreach (DataRow dr in subRows) { Console.WriteLine("{0}:{1}", dr[0], dr["Name"]); } Console.WriteLine(""); } } catch (Exception e) { Console.WriteLine(e); } } } }
View Code
相关文章推荐
- ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
- CUBRID学习笔记 39 net使用dataset 返回查询的数据
- ADO.NET笔记——使用通用数据访问
- ADO.NET各种数据返回方法使用3
- 使用ADO.NET2.0提升数据交互性能 DataSet 数据表
- 使用ADO.NET解锁 Microsoft Access数据(一)
- ADO.NET的数据提供程序和数据连接——ADO.NET学习&应用笔记之二
- VC中ADO使用SQLOLEDB数据驱动时,无法获取存储过程RAISERROR返回的字符串描述
- 使用ADO.net转换数据到Excel格式并提供下载
- vb.net使用水晶报表显示动态Dataset的数据
- 使用 ADO.NET 和 Oracle 进行高级数据访问
- 数据访问:使用 ADO.NET 的最佳实践
- 使用 ADO.NET 和 Oracle 进行高级数据访问
- 在ADO.NET中使用事务保护数据的完整性(2)
- [2004-8-4]VB.Net学习笔记,使用ADO.Net对象访问数据库,将结果写入ListView
- 使用 ADO.NET 和 Oracle 进行高级数据访问
- 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- 使用ADO.NET 和C# 处理BLOB 数据
- 使用ADO.NET 和C# 处理BLOB 数据
- 数据访问:使用 ADO.NET 的最佳实践(ADO.NET 技术文档)