• 编码实现>微软数据访问技术ADO.NET>使用DataSet>


    编码实现>微软数据访问技术ADO.NET>使用DataSet>了解DataSet

    DataSet就是一个内存数据库,DataSet内部以XML表示数据,不仅可以是数据库中数据的副本,还可以从XML,CSV文件导入记录。

    DataSet的层次关系图


    编码实现>微软数据访问技术ADO.NET>使用DataSet>使用DataTable实现内存表

    使用DataTable实现内存表
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;

    namespace MemoryTable
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                
    //为DataTable指定一个表名,通过dt.TableName可以访问表名。
                DataTable dt = new DataTable("内存表示例");
                
    //为DataTable添加架构信息,也就是创建字段。
                dt.Columns.Add(new DataColumn("书名"typeof(string)));
                dt.Columns.Add(
    new DataColumn("书号"typeof(string)));
                DataColumn[] dcs 
    = new DataColumn[2];
                dcs[
    0= new DataColumn("价格"typeof(decimal));
                dcs[
    1= new DataColumn("出版社"typeof(string));
                dt.Columns.AddRange(dcs);
                DataRow dr 
    = dt.NewRow();
                dr[
    "书名"= "C#编程系列";
                dr[
    "书号"= "12345-678-90";
                dr[
    "价格"= 45.3;
                dr[
    "出版社"= "我的出版社";
                dt.Rows.Add(dr);
                dt.Rows.Add(
    new object[] { "C#编程系列二""33455-333-333"45.7"我的出版社" });
                DisplayResult(dt);
                Console.ReadLine();
            }
            
    static void DisplayResult(DataTable dt)
            {
                
    for (int i = 0; i <= dt.Columns.Count - 1; i++)
                {
                    Console.Write(dt.Columns[i].ColumnName.PadRight(
    10));
                }
                Console.WriteLine();
                
    for (int i = 0; i <= dt.Rows.Count - 1; i++)
                {
                    
    foreach (DataColumn col in dt.Columns)
                    {
                        Console.Write(dt.Rows[i][col].ToString().PadRight(
    10));
                    }
                    Console.WriteLine();
                }
            }
        }
    }


    编码实现>微软数据访问技术ADO.NET>使用DataSet>把数据库中的数据填充到DataSet,以及访问DataSet中的数据

    代码
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    namespace FillDataSet
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                
    const string ConnectionStr = @"Data Source=.\SQLExpress;AttachDbFilename=|DataDirectory|\Northwnd.mdf;Integrated Security=True;user Instance=True;";
                
    using (SqlConnection conn = new SqlConnection(ConnectionStr))
                {
                    
    try
                    {
                        conn.Open();
                        DataSet ds 
    = new DataSet();
                        SqlDataAdapter daOrders 
    = new SqlDataAdapter("Select top 2 * from orders", conn);
                        daOrders.Fill(ds,
    "orders");
                        Console.WriteLine(
    "填充Orders表到DataSet成功");
                        SqlDataAdapter daProducts 
    = new SqlDataAdapter("Select top 2 * from Products", conn);
                        daProducts.Fill(ds,
    "Products");
                        Console.WriteLine(
    "填充Products表到DataSet成功");
                        SqlDataAdapter daOrderDetails 
    = new SqlDataAdapter("Select top 2 * from [Order Details]", conn);
                        daOrderDetails.Fill(ds,
    "Order Details");
                        Console.WriteLine(
    "填充Order Detail表到DataSet成功");
                        Console.WriteLine(
    "访问Orders表的第一行第一列记录值是:");
                        Console.WriteLine(ds.Tables[
    0].Rows[0][0]);
                        
    //使用CreateTableReader方法显示所有的数据
                        DisplayResult(ds);
                    }
                    
    catch (SqlException ex)
                    {
                        Console.WriteLine(
    "在处理数据的过程中发生了错误:{0}", ex.Message);
                    }
                    
    finally
                    {
                        
    if (conn.State == ConnectionState.Open)
                        {
                            conn.Close();
                        }
                    }
                }
                Console.Read();
            }
            
    static void DisplayResult(DataSet ds)
            {
                
    using (DataTableReader dtr = ds.CreateDataReader())
                {
                    
    do
                    {
                        
    if (dtr.HasRows)
                        {                        
                            
    while (dtr.Read())
                            {
                                
    for (int i = 0; i < dtr.FieldCount; i++)
                                {
                                    Console.Write(dtr[i] 
    + " ");
                                }
                                Console.WriteLine();
                            }
                        }
                        
    else
                        {
                            Console.WriteLine(
    "没有数据");
                        }
                        Console.WriteLine(
    "---------------------" + Environment.NewLine);
                    } 
    while (dtr.NextResult());
                }
            }
        }
    }


    DataView对象比DataTable对象更多的功能,通过使用DataView对象,可以实现对数据表的排序,搜索,帅选等功能。


     


    合乎自然而生生不息。。。
  • 相关阅读:
    vbox安装增强功能,实现宿主机文件夹共享并浏览器访问
    linux镜像下载
    linux命令之sed
    关于MySQL数据库的备份方案
    linux防火墙使用以及配置
    Jenkins安装部署(二)
    Jenkins安装部署(一)
    Centos7在虚拟机中扩展磁盘空间
    CentOS 7系统根目录分区扩容
    Linux下的SVN服务器搭建
  • 原文地址:https://www.cnblogs.com/samwu/p/1850559.html
Copyright © 2020-2023  润新知