zoukankan      html  css  js  c++  java
  • 第七讲 ASP.NET应用:DataSet和XML

    摘要
    .数据集概述
    .XML概述
    .XML的使用
    .数据集和XML使用技巧

    *数据集概述
    1、数据集是一种代表关系数据的内存驻留结构
    2、数据集分类
    -类型化数据集
    -非类型化数据集
    3、类型化数据集和非类型化数据集的区别

    类型化数据集这样一种数据集,它先从基DataSet类派生,然后使用XML架构文件(.xsd文件)中的信息生成新类。架构中的信息

    (表、列等)被作为一组第一类对象和属性生成并编译为此新数据集类。
    可以直接通过名称引用表和列
    在VS.NET中可以智能感知元素的类型

    非类型化数据集没有相应的内置架构。与类型化数据集一样,非类型化数据集也包含表、列等,但它们只作为集合公开。
    需要通过Tables集合引用列
    不能感知

    4、数据集的构成
    DataTableCollection
    DataTable(Columns(DataCloums),Rows(DataRow),Constraints(Constraint))
    DataRelationCollection
    (DataRelation)

    数据集常用操作
    *创建数据集和数据表
    DataSet dsUntyped = new DataSet("myDS");//创建数据集
    DataTable dtMaster = new DataTable("Master");//创建数据表
    DataTable dtChild = new DataTable("Child");
    dsUntyped.Tables.Add(dtMaster);//把数据表添加到数据集中
    dsUntyped.Tables.Add(dtChild);

    Session["ds"] = dsUntyped;

    *添加列
    DataSet dsUntyped = (DataSet)Session["ds"];
    dsUntyped.Tables["Master"].Columns.Add("MasterID",typeof(int));
    dsUntyped.Tables["Master"].Columns.Add("MasterValue",typeof(string));
    dsUntyped.Tables["Child"].Columns.Add("MasterLink",typeof(int));
    dsUntyped.Tables["Child"].Columns.Add("ChildID",typeof(int));
    dsUntyped.Tables["Child"].Columns .Add("ChildValue",typeof(string));
    //修改表头
    dsUntyped.Tables["Master"].Columns["MasterID"].Caption = "主ID";
    dsUntyped.Tables["Master"].Columns["MasterValue"].Caption = "值";

    Session["ds"] = dsUntyped;

    *添加行
    try
    {
     DataSet dsUntyped = (DataSet)Session["ds"];
     //为Master表添加两行
     DataRow dr = dsUntyped.Tables["Master"].NewRow();
     dr["MasterID"] = 1;
     dr["MasterValue"] = "One";
     dsUntyped.Tables["Master"].Rows.Add(dr);
     dr = dsUntyped.Tables["Master"].NewRow();
     dr["MasterID"] = 2;
     dr["MasterValue"] = "Two";
     dsUntyped.Tables["Master"].Rows.Add(dr);
     //为child表添加1行
     dr = dsUntyped.Tables["Child"].NewRow();
     dr["MasterLink"] = 1;
     dr["ChildID"] = 1;
     dr["ChildValue"] = "ChildOne";
     dsUntyped.Tables["Child"].Rows.Add(dr);
     Session["ds"] = dsUntyped;
     Bind();
    }
    catch(Exception ee)
     {
       Response.Write(ee.Message);
     }

    *添加唯一键
    DataSet dsUntyped = (DataSet)Session["ds"];
    System.Data.UniqueConstraint uc = new UniqueConstraint("unqi",dsUntyped.Tables["Master"].Columns["MasterID"]);
    dsUntyped.Tables["Master"].Constraints.Add(uc);
    Session["ds"] = dsUntyped;

    *添加外键
    DataSet dsUntyped = (DataSet)Session["ds"];
    System.Data.ForeignKeyConstraint fc = new ForeignKeyConstraint("fc",dsUntyped.Tables["Master"].Columns["MasterID"],dsUntyped.Tables["Child"].Columns["MasterLink"]);
    dsUntyped.Tables["Child"].Constraints.Add(fc);
    Session["ds"] = dsUntyped;

    *修改MasterID
    dsUntyped.Tables["Master"].Rows[0]["MasterID"] = 4;

    *求值
    DataSet dsUntyped = (DataSet)Session["ds"];
    int nIndexTb = int.Parse(ddlTable.SelectedItem.Value);
    int nIndexRow = int.Parse(tbRow.Text);
    int nIndexCol = int.Parse(tbCol.Text);
    object obj = dsUntyped.Tables[nIndexTb].Rows[nIndexRow][nIndexCol];
    tbResult.Text = obj.ToString();

    *赋值
    DataSet dsUntyped = (DataSet)Session["ds"];
    int nIndexTb = int.Parse(ddlTable.SelectedItem.Value);
    int nIndexRow = int.Parse(tbRow.Text);
    int nIndexCol = int.Parse(tbCol.Text);
    dsUntyped.Tables[nIndexTb].Rows[nIndexRow][nIndexCol] = tbResult.Text;
    Session["ds"] = dsUntyped;
    Bind();


    XML概述
    1、什么是XML(eXtensible Markup language)
    -XML是标记语言
    -XML是可扩展的(eXtensible)标记语言。
    XML并非象HTML那样,提供了一组事先已经定义好了的标记,而是提供了一个标准,利用这个标准,可以根据实际需要定义自己的新的标记语言,并为这个标记语言规定特有的一套标记。准确地说,XML是一种元标记语言,它允许程序开发人员根据它所提供的规则,制定各种各样的标记语言。

    2、XML的优点
    良好的可扩展性
    内容与形式的分离
    遵循严格的语法要求
    便于不同系统之间信息的传输
    具有较好的保值性

    3、XML、数据库?
    用XML文件存储数据,可减少额外的服务器的负荷。
    只要使用文本编辑器,而不必使用复杂的数据库工具就可以编辑。
    XML文件很容易备份,容易上传和下载。
    XML还有一个更抽象的优点,即作为层次型的格式比关系型的更好。
    所有的服务器都是支持XML文件的。

    DataSet方法
    DataSet.ReadXml(string strFileName);
    DataSet.WriteXml(string strFileName);

    *数据集和XML使用技巧
    1、DataSet和字符串转换
    DataSet StringToDataSet(string str)
    {
     System.IO.StringReader sr=new System.IO.StirngReader(strDsc);
     DataSet dsC=new DataSet();
     dsC.ReadXml(sr);
     return dsC;
    }

    string DataSetToString(DataSet ds)
    {
     string str=ds.GetXml();
     return str;
    }

    2、在C#中直接对XML文件里的数据进行修改,查询、添加、删除等操作
    XmlDocument的使用


    XML学习资料http://www.w3school.com.cn/xml/

  • 相关阅读:
    OSGi系列 Apache Felix初体检
    OSGi系列 我理解的OSGi
    OSGi系列 开发服务端Web应用之一:Servlet实现
    10 Productivity Tips
    在DotNetNuke中通过修改ascx文件源码自定义界面
    DNN4.3.3的版本开发的模块.没登陆DNN的情况下,按钮的事件有时候执行,有时候怎么点都不执行
    DotNetNuke(DNN)网站发布、部署、迁移和重建
    使用3dmax 9.0导入Illustrator 文件时提示"Line in file exceeds 255 characters"
    ”A page can have only one serverside Form tag“错误
    DotNetNuke出错:“Runat 属性必须具有值 Server(The Runat attribute must have the value Server Error)"
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1414368.html
Copyright © 2011-2022 走看看