- 浏览: 1652556 次
- 性别:
- 来自: 福州
文章分类
- 全部博客 (583)
- strust2.0 (14)
- hibernate2.0 (5)
- java (13)
- javaScript (59)
- AJAX (8)
- TFS (6)
- 其它 (20)
- CSS (23)
- asp (18)
- Dojo (5)
- 项目管理 (3)
- SQLServer (25)
- oracle (26)
- .NET (221)
- 开源系统 (6)
- 常识 (41)
- 软件架构 (1)
- My SQL (1)
- SilverLight (10)
- Flex (1)
- window7 (1)
- 网络安全 (2)
- CMS (1)
- ECShop (4)
- 邮件系统 (9)
- Linq (0)
- 淘宝店铺经营宝典 (0)
- flash插件 (1)
- Hubble.net全文检索 (1)
- 在线编辑器 (1)
- 正则表达式 (1)
- 创业 (1)
- asp.net mvc (1)
- 全文检索 (0)
- 全文检索 HubbleDotNet (1)
- Android (27)
- TFS bin (1)
最新评论
-
z小小Jean:
有具体的解决方法吗
用命名imp导入DMP时报无法解析指定的连接标识符的解决办法 -
njoiop:
这些都是常用接口,IP地址、手机归属和身份证查询接口,基站定位 ...
IP地址、手机归属和身份证查询接口 -
Fs_sky:
那导出DMP如何包含序列等其他东西?
在plsql中如何导出dmp文件 -
qiywtc:
请问该怎么判断视频的格式再选择对应的播放格式来播放啊?
asp.net各种类型视频播放代码(全) -
xinghenhouzi:
楼主说的版本不同无法导入导出是什么意思?我用10g的exp.e ...
在plsql中如何导出dmp文件
ObjectDataSource控件与SqlDataSource控件的对象模型是类似的。ObjectDataSource没有ConnectionString属性,它暴露了TypeName属性,用于指定需要实例化的执行数据操作的对象类型(类名)。ObjectDataSource控件与SqlDataSource的命令属性相似,也支持SelectMethod、UpdateMethod、InsertMethod和DeleteMethod等属性,用于指明执行这些数据操作的关联类型的方法。本文将解释建立数据访问层和业务逻辑层组件,并通过ObjectDataSource对象展示ASP.NET 2.0数据组件的技术。
绑定到数据访问层
数据访问层组件封装了那些使用SQL命令查询和修改数据库的ADO.NET代码。在典型情况下,它抽象了建立ADO.NET连接和命令的细节信息,暴露了可以通过适当参数调用的方法。典型的数据访问层组件可能暴露了下面一些方法:
public class MyDataLayer {
public DataView GetRecords();
public DataView GetRecordsByCategory(String categoryName);
public DataView GetRecordByID(int recordID);
public int UpdateRecord(int recordID, String recordData);
public int DeleteRecord(int recordID);
public int InsertRecord(int recordID, String recordData);
}
ObjectDataSource可以使用下面的方式来关联到这个类型:
<asp:ObjectDataSource TypeName="MyDataLayer" SelectMethod="GetRecords" UpdateMethod="UpdateRecord"
DeleteMethod="DeleteRecord" InsertMethod="InsertRecord" runat="server"/>
ObjectDataSource要求对象有非常特殊的设计模式。这些约束都是Web应用程序请求所处的无状态的(stateless)环境引起的。由于在典型情况下,对象的建立和销毁都是为了服务于一个请求,因此通过对象数据源绑定的对象也是无状态的。在默认情况下,ObjectDataSource采用TypeName属性指定的类型的默认的构造函数(不带参数),尽管通过处理ObjectCreating事件来建立一个自定义对象实例,并把它指定给事件参数的ObjectInstance属性,从而实现实例化也是可行的。与SelectMethod属性关联的对象方法可以返回任何对象、Ienumerable列表、集合或数组。在上面的数据访问层示例中,DataView对象实现了IEnumerable接口。我们在下一部分将讨论到,这些方法也可以返回强化类型的集合或对象。
GetProducts() -> ProductCollection
GetProductsDataSet() -> DataSet
GetProduct (int productId) -> Product
Update、Insert和Delete一般把单独的数据项字段作为参数,也可以把带有数据项字段公共属性的集合类对象作为参数。
UpdateProduct (int id, String name, double price, bool inStock)
UpdateProduct (Product p) // p.ID, p.Name, p.Price, p.InStock
DeleteProduct (int id)
与SqlDataSource的例子类似,传递到Update、Insert和Delete方法的数据项的参数名称或属性必须与SelectMethod返回的字段相同,这样GridView/DetailsView才能自动地进行更新/删除/插入操作。与SqlDataSource类似,ObjectDataSource方法的参数也可以与数据参数对象相关联,使用SelectParameters、FilterParameters、UpdateParameters、DeleteParameters或InsertParameters集合。
下面的例子演示了一个通过数据访问层组件(AuthorsDB)暴露数据的ObjectDataSource控件。这个类型的类文件存放在应用程序的App_Code目录中,在运行时ASP.NET动态地编译它。
<asp:ObjectDataSource ID="ObjectDataSource2" Runat="server" TypeName="AuthorsDB"
SelectMethod="GetStates"/>
<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="AuthorsDB"
SelectMethod="GetAuthorsByState" UpdateMethod="UpdateAuthor" OldValuesParameterFormatString="{0}">
<SelectParameters>
<asp:ControlParameter Name="state" PropertyName="SelectedValue" ControlID="DropDownList1"/>
</SelectParameters>
</asp:ObjectDataSource>
绑定到业务逻辑层
关于数据访问层,我们还需要重点的注意的是,由于SelectMethod把执行查询的结果作为数据视图返回,它仍然把下层数据库的大纲暴露给了显示页面。还有,在数据访问层没有业务规则;它只是简单地执行查询和返回结果。如果需要把显示与数据库大纲隔离开来,并引入业务规则或验证过程,通常需要把数据访问层包装到业务逻辑层中。
业务逻辑层与DAL类似,它给ObjectDataSource暴露了无状态的方法,用于绑定Web页面中的控件。但是,它一般不会直接返回ADO.NET结果,而是返回强化类型的对象,这些对象表现了应用程序所使用的业务实体。这种显示层与下层数据存储大纲的分离,使我们更容易地单独维护站点中的数据访问部分,而不用修改使用数据的页面。只要有恰当的中间层,你就可以全面修改下层数据存储大纲,而不用更新应用程序中的独立页面。
下面就是一个业务逻辑层的例子。
public class MyBusinessLayer {
public RecordCollection GetRecords();
public RecordCollection GetRecordsByCategory(String categoryName);
public RecordCollection GetRecordByID(int recordID);
public String GetRecordName(int recordID);
public Object GetRecordData(int recordID);
public int UpdateRecord(Record r);
public int DeleteRecord(Record r);
public int InsertRecord(Record r);
public int UpdateRecordData(int ID, String Data);
public int UpdateRecordName(int ID, String Name);
}
public class Record {
public int ID { get; set; }
public String Name { get; set; }
public Object Data { get; set; }
}
业务逻辑层和数据访问层之间的主要区别在于,业务逻辑层返回的是强化类型的Record对象的集合(RecordCollection),而不是数据视图。它也允许我们把这个Record对象作为参数进行更新、插入和删除操作。ObjectDataSource的DataObjectTypeName属性允许你配置ObjectDataSource,给它传递类型而不是字段值。在业务逻辑层的方法实现中,你可以包含用于验证业务规则的自定义逻辑。例如,你可以确保只有“检查中”类别的Record才能被更新,或者只有Administrators才能插入新记录。你还可以包含验证逻辑以确保在插入或修改数据库的数据之前,作为参数传递进来的数据类型和值是正确的。请注意,业务逻辑层中的验证规则不是显示层的输入验证(它指导终端用户在提交更新之前输入正确的值)的替代品。
下面的例子演示了一个叫做AuthorsComponent的简单业务逻辑层。在它内部,BLL通过DAL调用来实际执行数据库操作。为了简单,BLL没有包含任何业务规则或验证,尽管它可能是一个现实的应用程序。我们还要注意,这个例子没有通过编写自定义集合类来返回强化类型的记录,而是利用了.NET框架组件2.0中的称为“范型(Generics)”的新语言特性来建立Author对象集合。使用强化类型集合让ObjectDataSource在设计时(在Visual Studio和其它工具中)能够推导出业务对象的大纲。
<asp:DropDownList ID="DropDownList1" Runat="server" DataSourceID="ObjectDataSource2" AutoPostBack="True" />
<asp:ObjectDataSource ID="ObjectDataSource2" Runat="server" TypeName="AuthorsComponent" SelectMethod="GetStates"/>
<asp:GridView ID="GridView1" Runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True">
……
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="AuthorsComponent" SelectMethod="GetAuthorsByState" UpdateMethod="UpdateAuthor" DataObjectTypeName="Author" SortParameterName="sortExpression">
……
</asp:ObjectDataSource>
下面的图表显示了GridView、ObjectDataSource和业务逻辑层之间的交互操作。ObjectDataSource被配置为调用ContactsList类型的GetContacts方法,返回Contact对象的集合。GridView列出了Contact对象,并直接绑定到该类型的属性(ID, Name)来生成列。请注意,SelectMethod可以返回一个Contact对象的IEnumerable接口,或者返回单个Contact对象。如果本身没有实现IEnumerable,ObjectDataSource会把SelectMethod返回的结果封装到IEnumerable中。
ObjectDataSource控件与SqlDataSource类似,当SelectMethod 返回数据集、数据视图或数据表对象的时候,它也支持排序功能。ObjectDataSource依赖数据视图。在这个例子中Sort属性执行排序操作。ObjectDataSource也支持SelectMethod实现中的自定义排序,如果该方法没有返回数据集、数据视图和数据表,它就非常有用。通过把SortParameterName属性设置为从数据源接受SortExpression的方法参数名称,可以实现自定义排序。在调用SelectMethod的时候,ObjectDataSource会把这个表达式传递到你的方法中,你就可以使用这个表达式实现自己的排序逻辑。前面的例子演示了在AuthorsComponent类中自定义了一个排序实现。
ObjectDataSource还支持SelectMethod实现中的自定义分页功能。你需要使用StartRowIndexParameterName、MaximumRowsParameterName和SelectCountMethod属性来设置它。
绑定到Visual Studio数据集
绑定数据访问层的操作可能很单调乏味,因为在DAL的不同方法中,执行SQL语句或存储过程的ADO.NET代码时相同的或相似的。虽然你可以利用上述技术数用定制的ADO.NET代码来编写自己的DAL,Visual Studio还是提供了一条基于简单的向导生成数据访问层的方便途径。在这种情况下,数据访问层是强化类型的数据集对象。该数据集包含了TableAdapter类型,它暴露了用于返回强化类型的数据表对象的方法。这些方法适合于直接绑定到ObjectDataSource,或者在业务逻辑层组件中调用。
为了给Visual Studio对象添加数据集,你需要右键点击“解决方案浏览器”并选择“添加新项”,接着选择“数据集”项类型。Visual Studio给App_Code目录添加了一个DataSet.xsd文件,并打开了数据集设计器,载入了TableAdapter向导。你可以跟随TableAdapter向导,指定数据库中的SQL语句或存储过程,接着在向导的最后一个页面中输入与这些查询/命令关联的方法名称。
TableAdapter可以暴露两个方法:Fill方法用于填充已有的数据集,Get方法返回一个已经填充好的数据表对象。前者更适合于Windows客户端(在应用程序的生命周期中数据集保存在内存中),而后者适合于ObjectDataSource。TableAdapter向导还为你提供的SQL选择语句自动地生成了更新、插入和删除方法(需要选择主键)。在配置好向导之后,Visual Studio给数据集设计器添加了一个新的数据表和TableAdapter类型。
TableAdapter描述了单个结果集的大纲和大纲上的选择、更新、插入或删除操作。你可以通过在数据集设计器中右键单击,给数据集添加多个TableAdapter。你还可以右键点击设计器中的TableAdapter框给TableAdapter添加额外的查询(倘若它们返回相同的大纲)。例如,你的TableAdapter可能同时包含了GetAuthors()和GetAuthorsById(int id) 方法,但是如果要添加GetTitles()方法,可能需要添加一个新的TableAdapter。下图显示了添加了多个TableAdapter的数据集设计器:
你完成数据集的设计之后,就可以保存DataSet.xsd文件了(它引起该类型被设计器后台编译,以供页面使用)。你可以看到暴露给页面代码的这些类型:
protected void Page_Load(object sender, EventArgs e)
{
DataSetTableAdapters.PhotosTableAdapter adapter = new DataSetTableAdapters.PhotosTableAdapter();
adapter.GetPhotosForAlbum(0);
}
但是,你不需要从自己的代码中调用这些方法。你可以把ObjectDataSource绑定到这些方法:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
TypeName="DataSetTableAdapters.PhotosTableAdapter"
SelectMethod="GetPhotosForAlbum">
<SelectParameters>
<asp:QueryStringParameter Name="albumID" QueryStringField="id" Type="Int32"/>
</SelectParameters>
</asp:ObjectDataSource>
下面的例子演示了一个绑定到DataSet.TableAdapter方法的ObjectDataSource。在后面几个例子中我们将使用这个数据集演示如何使用ASP.NET数据控件实现一个简单的相册应用程序。请注意这个例子中的数据视图使用了一个叫做ImageField的新字段类型来显示照片。我们还要注意,ObjectDataSource中使用的ConvertNullToDBNull会导致空参数值在传递给TableAdapter方法之前被转换为DbNull(必须的)。
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="DataComponentTableAdapters.AlbumsTableAdapter"
SelectMethod="GetAlbumsByOwner" UpdateMethod="Update" ConvertNullToDBNull="true" OldValuesParameterFormatString="original_{0}">
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" TypeName="DataComponentTableAdapters.OwnersTableAdapter" SelectMethod="GetOwners" />
本文来自: 编程入门网 http://www.bianceng.cn/webkf/aspx/200705/1031.htm
绑定到数据访问层
数据访问层组件封装了那些使用SQL命令查询和修改数据库的ADO.NET代码。在典型情况下,它抽象了建立ADO.NET连接和命令的细节信息,暴露了可以通过适当参数调用的方法。典型的数据访问层组件可能暴露了下面一些方法:
public class MyDataLayer {
public DataView GetRecords();
public DataView GetRecordsByCategory(String categoryName);
public DataView GetRecordByID(int recordID);
public int UpdateRecord(int recordID, String recordData);
public int DeleteRecord(int recordID);
public int InsertRecord(int recordID, String recordData);
}
ObjectDataSource可以使用下面的方式来关联到这个类型:
<asp:ObjectDataSource TypeName="MyDataLayer" SelectMethod="GetRecords" UpdateMethod="UpdateRecord"
DeleteMethod="DeleteRecord" InsertMethod="InsertRecord" runat="server"/>
ObjectDataSource要求对象有非常特殊的设计模式。这些约束都是Web应用程序请求所处的无状态的(stateless)环境引起的。由于在典型情况下,对象的建立和销毁都是为了服务于一个请求,因此通过对象数据源绑定的对象也是无状态的。在默认情况下,ObjectDataSource采用TypeName属性指定的类型的默认的构造函数(不带参数),尽管通过处理ObjectCreating事件来建立一个自定义对象实例,并把它指定给事件参数的ObjectInstance属性,从而实现实例化也是可行的。与SelectMethod属性关联的对象方法可以返回任何对象、Ienumerable列表、集合或数组。在上面的数据访问层示例中,DataView对象实现了IEnumerable接口。我们在下一部分将讨论到,这些方法也可以返回强化类型的集合或对象。
GetProducts() -> ProductCollection
GetProductsDataSet() -> DataSet
GetProduct (int productId) -> Product
Update、Insert和Delete一般把单独的数据项字段作为参数,也可以把带有数据项字段公共属性的集合类对象作为参数。
UpdateProduct (int id, String name, double price, bool inStock)
UpdateProduct (Product p) // p.ID, p.Name, p.Price, p.InStock
DeleteProduct (int id)
与SqlDataSource的例子类似,传递到Update、Insert和Delete方法的数据项的参数名称或属性必须与SelectMethod返回的字段相同,这样GridView/DetailsView才能自动地进行更新/删除/插入操作。与SqlDataSource类似,ObjectDataSource方法的参数也可以与数据参数对象相关联,使用SelectParameters、FilterParameters、UpdateParameters、DeleteParameters或InsertParameters集合。
下面的例子演示了一个通过数据访问层组件(AuthorsDB)暴露数据的ObjectDataSource控件。这个类型的类文件存放在应用程序的App_Code目录中,在运行时ASP.NET动态地编译它。
<asp:ObjectDataSource ID="ObjectDataSource2" Runat="server" TypeName="AuthorsDB"
SelectMethod="GetStates"/>
<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="AuthorsDB"
SelectMethod="GetAuthorsByState" UpdateMethod="UpdateAuthor" OldValuesParameterFormatString="{0}">
<SelectParameters>
<asp:ControlParameter Name="state" PropertyName="SelectedValue" ControlID="DropDownList1"/>
</SelectParameters>
</asp:ObjectDataSource>
绑定到业务逻辑层
关于数据访问层,我们还需要重点的注意的是,由于SelectMethod把执行查询的结果作为数据视图返回,它仍然把下层数据库的大纲暴露给了显示页面。还有,在数据访问层没有业务规则;它只是简单地执行查询和返回结果。如果需要把显示与数据库大纲隔离开来,并引入业务规则或验证过程,通常需要把数据访问层包装到业务逻辑层中。
业务逻辑层与DAL类似,它给ObjectDataSource暴露了无状态的方法,用于绑定Web页面中的控件。但是,它一般不会直接返回ADO.NET结果,而是返回强化类型的对象,这些对象表现了应用程序所使用的业务实体。这种显示层与下层数据存储大纲的分离,使我们更容易地单独维护站点中的数据访问部分,而不用修改使用数据的页面。只要有恰当的中间层,你就可以全面修改下层数据存储大纲,而不用更新应用程序中的独立页面。
下面就是一个业务逻辑层的例子。
public class MyBusinessLayer {
public RecordCollection GetRecords();
public RecordCollection GetRecordsByCategory(String categoryName);
public RecordCollection GetRecordByID(int recordID);
public String GetRecordName(int recordID);
public Object GetRecordData(int recordID);
public int UpdateRecord(Record r);
public int DeleteRecord(Record r);
public int InsertRecord(Record r);
public int UpdateRecordData(int ID, String Data);
public int UpdateRecordName(int ID, String Name);
}
public class Record {
public int ID { get; set; }
public String Name { get; set; }
public Object Data { get; set; }
}
业务逻辑层和数据访问层之间的主要区别在于,业务逻辑层返回的是强化类型的Record对象的集合(RecordCollection),而不是数据视图。它也允许我们把这个Record对象作为参数进行更新、插入和删除操作。ObjectDataSource的DataObjectTypeName属性允许你配置ObjectDataSource,给它传递类型而不是字段值。在业务逻辑层的方法实现中,你可以包含用于验证业务规则的自定义逻辑。例如,你可以确保只有“检查中”类别的Record才能被更新,或者只有Administrators才能插入新记录。你还可以包含验证逻辑以确保在插入或修改数据库的数据之前,作为参数传递进来的数据类型和值是正确的。请注意,业务逻辑层中的验证规则不是显示层的输入验证(它指导终端用户在提交更新之前输入正确的值)的替代品。
下面的例子演示了一个叫做AuthorsComponent的简单业务逻辑层。在它内部,BLL通过DAL调用来实际执行数据库操作。为了简单,BLL没有包含任何业务规则或验证,尽管它可能是一个现实的应用程序。我们还要注意,这个例子没有通过编写自定义集合类来返回强化类型的记录,而是利用了.NET框架组件2.0中的称为“范型(Generics)”的新语言特性来建立Author对象集合。使用强化类型集合让ObjectDataSource在设计时(在Visual Studio和其它工具中)能够推导出业务对象的大纲。
<asp:DropDownList ID="DropDownList1" Runat="server" DataSourceID="ObjectDataSource2" AutoPostBack="True" />
<asp:ObjectDataSource ID="ObjectDataSource2" Runat="server" TypeName="AuthorsComponent" SelectMethod="GetStates"/>
<asp:GridView ID="GridView1" Runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True">
……
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="AuthorsComponent" SelectMethod="GetAuthorsByState" UpdateMethod="UpdateAuthor" DataObjectTypeName="Author" SortParameterName="sortExpression">
……
</asp:ObjectDataSource>
下面的图表显示了GridView、ObjectDataSource和业务逻辑层之间的交互操作。ObjectDataSource被配置为调用ContactsList类型的GetContacts方法,返回Contact对象的集合。GridView列出了Contact对象,并直接绑定到该类型的属性(ID, Name)来生成列。请注意,SelectMethod可以返回一个Contact对象的IEnumerable接口,或者返回单个Contact对象。如果本身没有实现IEnumerable,ObjectDataSource会把SelectMethod返回的结果封装到IEnumerable中。
ObjectDataSource控件与SqlDataSource类似,当SelectMethod 返回数据集、数据视图或数据表对象的时候,它也支持排序功能。ObjectDataSource依赖数据视图。在这个例子中Sort属性执行排序操作。ObjectDataSource也支持SelectMethod实现中的自定义排序,如果该方法没有返回数据集、数据视图和数据表,它就非常有用。通过把SortParameterName属性设置为从数据源接受SortExpression的方法参数名称,可以实现自定义排序。在调用SelectMethod的时候,ObjectDataSource会把这个表达式传递到你的方法中,你就可以使用这个表达式实现自己的排序逻辑。前面的例子演示了在AuthorsComponent类中自定义了一个排序实现。
ObjectDataSource还支持SelectMethod实现中的自定义分页功能。你需要使用StartRowIndexParameterName、MaximumRowsParameterName和SelectCountMethod属性来设置它。
绑定到Visual Studio数据集
绑定数据访问层的操作可能很单调乏味,因为在DAL的不同方法中,执行SQL语句或存储过程的ADO.NET代码时相同的或相似的。虽然你可以利用上述技术数用定制的ADO.NET代码来编写自己的DAL,Visual Studio还是提供了一条基于简单的向导生成数据访问层的方便途径。在这种情况下,数据访问层是强化类型的数据集对象。该数据集包含了TableAdapter类型,它暴露了用于返回强化类型的数据表对象的方法。这些方法适合于直接绑定到ObjectDataSource,或者在业务逻辑层组件中调用。
为了给Visual Studio对象添加数据集,你需要右键点击“解决方案浏览器”并选择“添加新项”,接着选择“数据集”项类型。Visual Studio给App_Code目录添加了一个DataSet.xsd文件,并打开了数据集设计器,载入了TableAdapter向导。你可以跟随TableAdapter向导,指定数据库中的SQL语句或存储过程,接着在向导的最后一个页面中输入与这些查询/命令关联的方法名称。
TableAdapter可以暴露两个方法:Fill方法用于填充已有的数据集,Get方法返回一个已经填充好的数据表对象。前者更适合于Windows客户端(在应用程序的生命周期中数据集保存在内存中),而后者适合于ObjectDataSource。TableAdapter向导还为你提供的SQL选择语句自动地生成了更新、插入和删除方法(需要选择主键)。在配置好向导之后,Visual Studio给数据集设计器添加了一个新的数据表和TableAdapter类型。
TableAdapter描述了单个结果集的大纲和大纲上的选择、更新、插入或删除操作。你可以通过在数据集设计器中右键单击,给数据集添加多个TableAdapter。你还可以右键点击设计器中的TableAdapter框给TableAdapter添加额外的查询(倘若它们返回相同的大纲)。例如,你的TableAdapter可能同时包含了GetAuthors()和GetAuthorsById(int id) 方法,但是如果要添加GetTitles()方法,可能需要添加一个新的TableAdapter。下图显示了添加了多个TableAdapter的数据集设计器:
你完成数据集的设计之后,就可以保存DataSet.xsd文件了(它引起该类型被设计器后台编译,以供页面使用)。你可以看到暴露给页面代码的这些类型:
protected void Page_Load(object sender, EventArgs e)
{
DataSetTableAdapters.PhotosTableAdapter adapter = new DataSetTableAdapters.PhotosTableAdapter();
adapter.GetPhotosForAlbum(0);
}
但是,你不需要从自己的代码中调用这些方法。你可以把ObjectDataSource绑定到这些方法:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
TypeName="DataSetTableAdapters.PhotosTableAdapter"
SelectMethod="GetPhotosForAlbum">
<SelectParameters>
<asp:QueryStringParameter Name="albumID" QueryStringField="id" Type="Int32"/>
</SelectParameters>
</asp:ObjectDataSource>
下面的例子演示了一个绑定到DataSet.TableAdapter方法的ObjectDataSource。在后面几个例子中我们将使用这个数据集演示如何使用ASP.NET数据控件实现一个简单的相册应用程序。请注意这个例子中的数据视图使用了一个叫做ImageField的新字段类型来显示照片。我们还要注意,ObjectDataSource中使用的ConvertNullToDBNull会导致空参数值在传递给TableAdapter方法之前被转换为DbNull(必须的)。
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="DataComponentTableAdapters.AlbumsTableAdapter"
SelectMethod="GetAlbumsByOwner" UpdateMethod="Update" ConvertNullToDBNull="true" OldValuesParameterFormatString="original_{0}">
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" TypeName="DataComponentTableAdapters.OwnersTableAdapter" SelectMethod="GetOwners" />
本文来自: 编程入门网 http://www.bianceng.cn/webkf/aspx/200705/1031.htm
发表评论
-
【转】C#定时执行某个程序
2015-03-16 17:33 733using System; using System. ... -
多行文本框字符数长度验证的解决方案
2012-03-02 16:04 1203在ASP.NET系统中经常会遇到验证文本框长度,比如数据库里是 ... -
【转】asp.net(c#)通过两个点的经纬度计算距离
2012-01-12 14:14 1383原理: 地球赤道上环绕地球一周走一圈共40075.04公里 ... -
【转】GSM手机短信软件的实现(C#)
2011-11-30 13:55 1310http://www.cnblogs.com/Engin/ar ... -
[转]C#开发短信收发软件的原理
2011-11-16 16:44 1651坛子里好像很多人对如何自己用C#开发手机短信有兴趣,正好我也做 ... -
TCPClient 类实现网络互联、通信
2011-10-29 11:16 2942TcpClient 为 TCP 网络服务提供客户端连接。 S ... -
Hubble.Net实现全文检索
2011-07-25 19:30 4036一、 下载安装 到Hubble.net 项目首页 http: ... -
c# 获取当前周第一天、最后一天,当前月第一天、最后一天的实现代码
2011-04-17 18:39 5291获取当前周工作日第一天、最后一天 int dayOfWee ... -
c#通过调用7z.exe实现解压文件
2011-03-05 15:47 48037-Zip 简介 7-Zip 是一款号称有着现今最高压缩比的 ... -
【转】IEnumerable 和 IEnumerator 接口
2011-03-04 17:12 2028类继承关系:public interface IQueryab ... -
【转】C#获取文件的绝对路径
2011-03-04 17:08 2484要在c#中获取路径有好多方法,一般常用的有以下五种: ... -
ListBox之间的数据项的移动操作
2010-09-29 11:04 1559<%@ Page Language="C# ... -
【转】asp.net中URL参数传值中文乱码的三种解决办法
2010-09-21 22:31 3418在做Asp.Net开发的时候,经常会遇到页面乱码的问题,下面是 ... -
【转】ASP.NET文件下载函数
2010-09-21 22:29 1406在你的Page_Load中添加这样的代码: Page.Re ... -
【转】在ASP.NET中实现多文件上传
2010-09-21 22:25 1238在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET ... -
[转]ASP.NET中常用的文件上传下载方法
2010-09-21 22:23 1817文件的上传下载是我们在实际项目开发过程中经常需要用到的技 ... -
HTML文章中截取摘要的问题[转]
2010-06-09 10:46 1877博客系统通常的做法是,在博客的首页只显示文章的摘要,点击标题进 ... -
获取 asp:Button 控件的的ComandName值的方法
2010-05-22 17:31 1252protected void btn_Save_Click ... -
ASP.NET防止用户多次登录的方法
2010-05-06 12:34 1580常见的处理方法是,在 ... -
使用 Enter 键提交表单
2010-04-27 14:04 1337一、使用 JS 代码 我们在表单里面的 TextBox (as ...
相关推荐
总的来说,"asp.net2.0 分页控件"是一个用于提高Web应用程序性能和用户体验的重要工具。通过理解和应用这些知识点,开发者能够创建出高效且用户友好的分页系统,而"LLPagination.dll"控件提供了一个模仿淘宝的解决...
ASP.NET 2.0引入了数据绑定和数据源控件的概念,例如SqlDataSource、ObjectDataSource等,这些控件可以方便地连接数据库,自动填充数据到Web控件,如GridView或ListView,极大地简化了数据展示和操作的流程。...
ASP.NET 2.0 ObjectDataSource 是一个非常重要的组件,它为Web应用程序提供了一种与业务对象交互的方式,而无需在视图层(View)和业务逻辑层(Business Logic Layer,BLL)之间直接耦合。这个组件使得开发人员能够...
ASP.NET 2.0提供了大量的服务器控件,如文本框、按钮、数据网格等,它们简化了界面开发。数据绑定是将数据源(如数据库)与控件连接的关键技术,允许动态地显示和更新数据。例如,GridView控件可以方便地展示数据库...
"asp.net2.0 开发技术大全"很可能是一本详尽介绍ASP.NET 2.0开发的书籍,包含实例、最佳实践以及常见问题解决方案等内容。 标题中的“开发技术大全”暗示了书的内容可能覆盖了以下几个关键知识点: 1. **基础概念*...
ASP.NET 2.0的控件还支持数据源控件(如SqlDataSource、ObjectDataSource),这使得与数据库的交互更加简单。 总而言之,ASP.NET 2.0实用控件集是一个包含多种常用Web开发控件的集合,对于快速开发高效、功能丰富的...
2. **数据绑定**:ASP.NET 2.0的数据绑定机制极大地提高了开发效率,包括DataSource控件(如SqlDataSource、ObjectDataSource)和数据绑定表达式( )。源码中可能会有如何与数据库交互,展示和操作数据的例子。 3....
ASP.NET 2.0是.NET Framework的一部分,提供了丰富的服务器控件、数据绑定、配置管理等工具,简化了开发过程。与1.x版本相比,2.0版本带来了如下的改进: 1. 简化的页面结构:ASP.NET 2.0引入了母版页(Master ...
ASP.NET 2.0相较于1.1版本有诸多改进,包括增强的开发效率、更强大的控件和模板系统,以及改进的配置管理。它引入了如母版页(Master Pages)、皮肤(Skin)、站点导航(Site Navigation)等新特性,使得网页设计...
ASP.NET 2.0引入了大量的服务器控件,如TextBox、Button、GridView等,这些控件简化了界面开发。开发者可以利用控件属性、方法和事件来实现复杂的交互逻辑。 3. **数据绑定与数据源控制**: 数据绑定是ASP.NET ...
2. **DataSource控件**:ASP.NET 2.0引入了多种DataSource控件,如SqlDataSource、AccessDataSource、ObjectDataSource等,简化了与各种数据源的连接和查询。这些控件使得在页面上绑定数据变得更加直观,无需编写...
1. **ASP.NET 2.0核心概念**:ASP.NET 2.0引入了诸如页面生命周期、控件事件模型、视图状态、缓存管理等关键概念。页面生命周期包括初始化、加载、验证、呈现和卸载阶段,理解这些阶段对于优化性能至关重要。控件...
本教程光盘“完全手册:ASP.NET2.0网络开发详解教程”涵盖了ASP.NET 2.0的核心概念和技术,旨在帮助初学者和有经验的开发者深入理解和掌握这一技术。 首先,ASP.NET 2.0引入了许多改进,包括Page生命周期的优化,...
ASP.NET 2.0引入了数据源控件,如SqlDataSource、AccessDataSource和ObjectDataSource等。这些控件简化了数据库查询和绑定到UI的过程,使得开发者无需编写大量的数据库访问代码。 **4. GridView和FormView** ...
这个"ASP.NET2.0网站开发实用教程4-5,7-8"显然是一个教学资源,涵盖了ASP.NET 2.0的多个关键章节,包括第四章、第五章、第七章和第八章的内容。下面将对这些章节可能涉及的知识点进行详细介绍。 第四章通常会讲解...
ASP.NET 2.0还包括诸如母版页(Master Pages)、主题(Themes)、皮肤(Skin)、自定义错误处理、改进的控件生命周期、以及更高效的页面生命周期管理等众多改进。 总的来说,ASP.NET 2.0的这些新特性极大地提升了...
最后,ASP.NET 2.0的扩展性使得开发者可以轻松创建自定义控件和模块。教程的最后部分将探讨如何利用.NET Framework的特性扩展ASP.NET,包括自定义HTTP处理程序、模块以及ISAPI扩展。 总的来说,这套教程覆盖了ASP...
此外,ASP.NET 2.0引入了DataSource控件,如SqlDataSource、ObjectDataSource等,这些控件提供了一种抽象层,用于与各种数据源交互,简化了数据访问的复杂性。DataSource控件可以配置在页面上,然后与数据绑定控件...
ASP.NET 2.0提供了丰富的服务器控件,如文本框(TextBox)、按钮(Button)、复选框(CheckBox)、列表框(ListBox)等,这些控件可以方便地处理用户交互。事件驱动编程是ASP.NET的核心,理解控件的生命周期和事件...
对于"2008微软认证-Web应用开发-ASP.NET2.0",考生需要掌握以下知识点: 1. **生命周期和页面事件**:理解ASP.NET页面的生命周期,包括初始化、加载、回发、保存状态和卸载等各个阶段,以及对应的关键事件。 2. *...