zoukankan      html  css  js  c++  java
  • asp.net异常DataRowView The type or namespace name 'DataRowView' could not be found

    Error Message:
    The type or namespace name 'DataRowView' could not be found (are you
    missing a using directive or an assembly reference?)
     
     
    源码
    ((DataRowView)Container.DataItem).Row.GetChildRows("  ")
    解释

    1.  Container是一个容器, Container.DataItem代表数据源中的每一行数据,是一个对像类型!

    2.  ((DataRowView)Container.DataItem):此时被强制性转换为视图类型后它的意思为:DataRowView视图中的每一行

    3.  ((DataRowView)Container.DataItem).Row:它这时候的意思为:DataRowView视图中的某一行。

    4.  ((DataRowView)Container.DataItem).Row.GetChildRows("RelationBetweenClassAndBoard"):它这时候的意思为:DataRowView视图中某一行下的所有了行。

    异常出现是因为没有引用System.data,在cs中已经引用过了,但是aspx中没有,在cs中加

    <%@ Import Namespace="System.Data" %>,问题解决。

    另外:转一点datatable,dataview,dataset及datarowview的博文

    这几个是常用的,它们之前有区别也有联系。 首先讲DataTable,因为其它的都是以它为对象,或以它为基础的。 一 、DataTable:表示内存中数据的一个表。 (1)它可以通过两个方面创建,一个是通过连接数据库记取某数据库表中的某些值记录,进而在内存中形成相关的完整的记录表,即使断开数据库连接,也是仍然存在的;另一种方法是通过编程代码来创建它(即在内存中创建DataTable,这个应该很熟,这是就不多说了); (2) 这与数据库中的表是一样的,也是有行和列的,只不过它们存储的地方不一样而已,数据库中的表的数据是存储在数据库中,可以直接打开数据库表看到相应的存储数据 ,而DataTable中的数据是存储在内存中的,你看不到的; (3) DataTalbe在C#中,都有自身的一个默认的自定义视图,即DefaultView 二、DataView:自定义视图,表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图 (1)它是通过DataTable的DefaultView来创建的,之所以在代码开发中常用它的一个重要原因是它允许在windows窗体和web窗体中进行数据绑定显示,如web窗体窗体中的repeater,DataGrid,DataList,DropDownList的数据源本质都是它DataView (2)创建DataView可以有几种方式,1:DataView view=new DataView(DataTable) 2:DataView view=DaTable.DefaultView(); (3)DataView的行称为DataRowView(即:数据库行视图),我们常用在当一个页面中要显示某条信息时(如:详细页,编辑单条信息时),就常常用到它,其过程是:创建一个方法,返回一个DataRowView,然后在页面后台文件中,创建一个DataRowView对象,进行把数据绑定显示中页面中的相应的web控件中,如:txtTitle.Text=row["title"].ToString(),(类似ASP中的rs一样,也是用 title=rs("title")... (4)DataRowView还有一个地方是常用的是当绑定repeater控件中的任何其它web控件时,也常用DataRowView,如: protected void rptBidList1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (i % 4 == 0 && i > 0) { e.Item.Controls.Add(new LiteralControl("")); } i++; if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView drv = (DataRowView)e.Item.DataItem; hlDomain.NavigateUrl = string.Format("~/BidDomain.aspx?id={0}",drv["ID"]); hlDomain.ToolTip = string.Format("域名:{0}", drv["DomainName"]); .......... } } (三)、DataSet ADO.NET是.Net FrameWork SDK中用以操作数据库的类库的总称。而DataSet类则是ADO.NET中最核心的成员之一,也是各种开发基于.Net平台程序语言开发数据库应用程序最常接触的类。之所以DataSet类在ADO.NET中具有特殊的地位,是因为DataSet在ADO.NET实现从数据库抽取数据中起到关键作用,在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存,所以有时说DataSet可以看成是一个数据容器。同时它在客户端实现读取、更新数据库等过程中起到了中间部件的作用(DataReader只能检索数据库中的数据)。   各种.Net平台开发语言开发数据库应用程序,一般并不直接对数据库操作(直接在程序中调用存储过程等除外),而是先完成数据连接和通过数据适配器填充DataSet对象,然后客户端再通过读取DataSet来获得需要的数据,同样更新数据库中数据,也是首先更新DataSet,然后再通过DataSet来更新数据库中对应的数据的。可见了解、掌握ADO.NET,首先必须了解、掌握DataSet。DataSet主要有三个特性:   1. 独立性。DataSet独立于各种数据源。微软公司在推出DataSet时就考虑到各种数据源的多样性、复杂性。在.Net中,无论什么类型数据源,它都会提供一致的关系编程模型,而这就是DataSet。   2. 离线(断开)和连接。DataSet既可以以离线方式,也可以以实时连接来操作数据库中的数据。这一点有点像ADO中的RecordSet。   3. DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。 (更多有关DataSet的详细深入的知识请看http://www.yesky.com/96/1924596.shtml) 其它相关的认识: 创建 DataTable DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他 .NET Framework 对象使用,最常见的情况是作为 DataSet 的成员使用。 DataTable 是存放数据的表格,而DataView 是一个视图,每一个DataTable 都有一个 defaultview,你可以使用DataView 在DataTable根据你的查询条件,选择要操作的数据。 可以进行筛选。 简单来说 DataTable中的数据是可以改动的,而DataView 中的数据是不能改的。 就象数据库中的表和视图一样。 这就是区别。这个其实跟cache 是没有关系的 ,关键还是在于你绑定的控件是DataList ,例如你要是绑定的是DataList,DataGridView等等复合列表控件 ,那么不管你是绑定的DataTable还是DataView 数据源,最终绑定到控件上的数据源都是DataView。

  • 相关阅读:
    团队冲刺第一阶段第三天
    团队冲刺第一阶段第二天
    团队冲刺第一阶段第一天
    学习进度07
    学习进度06
    结对编程之子数组最大的和(由于一直登不上我的账号,在规定日期内只在我搭档的博客上交了)
    小学四则运算网页版
    团队介绍
    学习进度条05
    111
  • 原文地址:https://www.cnblogs.com/bnuvincent/p/1455766.html
Copyright © 2011-2022 走看看