ASP.NETADO.NET
ADO.NET
ADO.NET 提供了前端控件和后端数据库之间的桥梁。ADO.NET 对象封装了与数据显示对象相互作用的所有的数据存取操作和控件。因此便隐藏了数据移动的细节。
下列图表整体展示了 ADO.NET 对象:
DataSet 类
数据集代表了数据库的一个子集。它和数据库没有持续的连接。为了升级数据库需要进行重新连接。DataSet 包括了 DataTable 和 DataRelation 对象。DataRelation 对象代表了两张表之间的关系。
下表是 DataSet 类的一些重要属性:
属性 | 描述 |
---|---|
CaseSensitive | 说明和数据表进行对比的字符串是否区分大小写。 |
Container | 为组件获取空间。 |
DataSetName | 获取或者设置现有数据集合的名称。 |
DefaultViewManager | 返回数据集合中的数据视图。 |
DesignMode | 表明组件是否处于设计模式下。 |
EnforceConstraints | 表明尝试上传文件时是否遵循限制条件。 |
Events | 获取与本组件相关的事件处理器列表。 |
ExtendedProperties | 获取与 DataSet 相关的自定义用户的信息的集合。 |
HasErrors | 表明是否有任何错误。 |
IsInitialized | 表明 DataSet 是否初始化。 |
Locale | 获取或者设置用来和表比较字符串的信息。 |
Namespace | 获取或者设置 DataSet 的命名空间。 |
Prefix | 获取或者设置一个 XML 前缀,它是命名空间的别名。 |
Relations | 返回 DataRelation 对象的集合。 |
Tables | 返回 DataTable 对象的集合。 |
下表列出来 DataSet 类的一些重要方法:
方法 | 描述 |
---|---|
AcceptChanges | 接受所有由于装载 DataSet 或者这个方法的更改。 |
BeginInit | 开始 DataSet 的初始化。该初始化发生在运行时。 |
Clear | 清除数据。 |
Clone | 克隆包括所有 DataTable 的结构、关系和限制在内的 DataSet 的结构。但是不克隆数据。 |
Copy | 复制数据和结构。 |
CreateDataReader() | 为每个 DataTable 返回带有一个结果集的 DataTableReader,顺序与 Tables 集合中表的显示顺序相同。 |
CreateDataReader(DataTable[]) | 为每个 DataTable 返回带有一个结果集 DataTableReader。 |
EndInit | 结束在窗体上使用或由另一个组件使用的 DataSet 的初始化。初始化发生在运行时。 |
Equals(Object) | 确定指定的对象是否等于当前对象。 |
Finalize | 释放资源执行其他清除。 |
GetChanges | 获取 DataSet 的副本,该副本包含自加载以来或自上次调用 AcceptChanges 以来对该数据集进行的所有更改。 |
GetChanges(DataRowState) | 获取由 DataRowState 筛选的 DataSet 的副本,该副本包含上次加载以来或调用 AcceptChanges 以来对该数据集进行的所有更改。 |
GetDataSetSchema | 为 DataSet 获取 XmlSchemaSet 副本。 |
GetObjectData | 用序列化 DataSet 所需的数据填充序列化信息对象。 |
GetType | 获取当前实例的 Type。 |
GetXML | 返回存储在 DataSet 中的数据的 XML 表示形式。 |
GetXMLSchema | 返回存储在 DataSet 中的数据的 XML 表示形式的 XML 架构。 |
HasChanges() | 获取一个值,该值指示 DataSet 是否有更改,包括新增行、已删除的行或已修改的行。 |
HasChanges(DataRowState) | 获取一个值,该值指示 DataSet 是否有 DataRowState 被筛选的更改,包括新增行、已删除的行或已修改的行。 |
IsBinarySerialized | 检查 DataSet 的序列化表示形式的格式。 |
Load(IDataReader, LoadOption, DataTable[]) | 使用提供的 IDataReader 以数据源的值填充 DataSet,同时使用 DataTable 实例的数组提供架构和命名空间信息。 |
Load(IDataReader, LoadOption, String[]) | 使用所提供的 IDataReader,并使用字符串数组为 DataSet 中的表提供名称,从而用来自数据源的值填充 DataSet。 |
Merge() | 将指定的 DataSet、DataTable 或 DataRow 对象的数组合并到当前的 DataSet 或 DataTable 中。这种方法有不一样的重载形式。 |
ReadXML() | 将 XML 架构和数据读入 DataSet。这种方法有不一样的重载形式。 |
ReadXMLSchema(0) | 将 XML 架构读入 DataSet。这种方法有不一样的重载形式。 |
RejectChanges | 回滚自创建 DataSet 以来或上次调用 DataSet.AcceptChanges 以来对其进行的所有更改。 |
WriteXML() | 从 DataSet 写 XML 数据和架构。这种方法有不一样的重载形式。 |
WriteXMLSchema() | 从 DataSet 写 XML 架构。这种方法有不一样的重载形式。 |
DataTable 类
DataTable 类代表了数据库中的表。它有如下的重要属性:大多数属性都是只读属性除了 PrimaryKey 属性:
属性 | 描述 |
---|---|
ChildRelations | 获取此 DataTable 的子关系的集合。 |
Columns | 获取属于该表的列的集合。 |
Constraints | 获取由该表维护的约束的集合。 |
DataSet | 获取此表所属的 DataSet。 |
DefaultView | 获取可能包括筛选视图或游标位置的表的自定义视图。 |
ParentRelations | 获取该 DataTable 的父关系的集合。 |
PrimaryKey | 获取或设置充当数据表主键的列的数组。 |
Rows | 获取属于该表的行的集合。 |
下表列示出了一些 DataTable 类的重要方法:
方法 | 描述 |
---|---|
AcceptChanges | 提交自加载此 DataSet 或上次调用 AcceptChanges 以来对其进行的所有更改。 |
Clear | 通过移除所有表中的所有行来清除任何数据的 DataSet。 |
GetChanges | 获取 DataSet 的副本,该副本包含自上次加载以来或自调用 AcceptChanges 以来对该数据集进行的所有更改。 |
GetErrors | 获取包含错误的 DataRow 对象的数组。 |
ImportRows | 将 DataRow 复制到 DataTable 中,保留任何属性设置以及初始值和当前值。 |
LoadDataRow | 查找和更新特定行。 如果找不到任何匹配行,则使用给定值创建新行。 |
Merge | 将指定的 DataSet、DataTable 或 DataRow 对象的数组合并到当前的 DataSet 或 DataTable 中。 |
NewRow | 创建与该表具有相同架构的新 DataRow。 |
RejectChanges | 回滚自该表加载以来或上次调用 AcceptChanges 以来对该表进行的所有更改。 |
Reset | 清除所有表并从 DataSet 中删除所有关系、外部约束和表。 子类应重写 Reset,以便将 DataSet 还原到其原始状态。 |
Select | 获取 DataRow 对象的数组。 |
DataRow 类
DataRow 对象代表了表中的一行,它有如下的重要属性:
属性 | 描述 |
---|---|
HasErrors | 表明是否有错误。 |
Items | 获取或者设置存储在特定栏目的数据。 |
ItemArrays | 获取或者设置本行中所有的值。 |
Table | 返回父表。 |
下表列示了 DataRow 类的重要方法:
方法 | 描述 |
---|---|
AcceptChanges | 应用调用该方法后的所有更改。 |
BeginEdit | 开始编辑操作。 |
CancelEdit | 取消编辑操作。 |
Delete | 删除数据行。 |
EndEdit | 结束编辑操作。 |
GetChildRows | 获取本行的子行。 |
GetParentRow | 获取父行。 |
GetParentRows | 获取 DataRow 的父行。 |
RejectChanges | 回滚所有 AcceptChanges 调用后的更改。 |
DataAdapter 对象
DataAdapter 对象扮演 DataSet 对象与数据库之间的中间者。这有助于 DataSet 从多种数据库或者其他数据源获取数据。
DataReader 对象
DataReader 对象是 DataSet 和 DataAdapter 结合的备选。这个对象提供了对数据库中的数据记录的定向的存取。这些对象只适合只读存取,例如填充一个列表然后断开连接。
DbCommand 和 DbConnection 对象
DbConnection 对象代表了数据源的连接。这种连接可以在不一样的命令对象间共享。
DbCommand 对象代表了从检索或操纵数据发送到数据库的命令或者或者一个储存的进程。
例子
目前为止,我们已经应用了我们电脑中的表和数据库。在本案例中,我们将创建一个表,添加栏目,行和数据,并且用 GridView 控件显示表。
源文件代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Untitled Page
</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
文件的代码如下:
namespace createdatabase
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = CreateDataSet();
GridView1.DataSource = ds.Tables["Student"];
GridView1.DataBind();
}
}
private DataSet CreateDataSet()
{
//creating a DataSet object for tables
DataSet dataset = new DataSet();
// creating the student table
DataTable Students = CreateStudentTable();
dataset.Tables.Add(Students);
return dataset;
}
private DataTable CreateStudentTable()
{
DataTable Students = new DataTable("Student");
// adding columns
AddNewColumn(Students, "System.Int32", "StudentID");
AddNewColumn(Students, "System.String", "StudentName");
AddNewColumn(Students, "System.String", "StudentCity");
// adding rows
AddNewRow(Students, 1, "M H Kabir", "Kolkata");
AddNewRow(Students, 1, "Shreya Sharma", "Delhi");
AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad");
AddNewRow(Students, 1, "Sunil Dubey", "Bikaner");
AddNewRow(Students, 1, "Rajat Mishra", "Patna");
return Students;
}
private void AddNewColumn(DataTable table, string columnType, string columnName)
{
DataColumn column = table.Columns.Add(columnName, Type.GetType(columnType));
}
//adding data into the table
private void AddNewRow(DataTable table, int id, string name, string city)
{
DataRow newrow = table.NewRow();
newrow["StudentID"] = id;
newrow["StudentName"] = name;
newrow["StudentCity"] = city;
table.Rows.Add(newrow);
}
}
}
当你执行程序时,观察以下几方面:
- 程序首先创建应一个数据集合然后用 GridView 控件的 DataBind() 方法约束它。
- Createdataset() 方法是用户定义功能,它可以创建一个新的 DataSet 对象并且调用其他的用户定义的 CreateStudentTable() 方法来创建表格然后将他们添加到数据集合的表集合中。
- CreateStudentTable() 方法调用用户定义的 AddNewColumn() 和 AddNewRow() 方法来创建表的栏目和行同时向行中添加数据。
当页面得到执行,它返回的表的行如下图所示:
原文链接: https://www.yukx.com/yukx/article/details/601.html 优科学习网ASP.NETADO.NET
-
项目中,有些函数需要处理某个服务的返回结果,而在对函数单元测试的时候,又不能启动那些服务,这里就可以利用Mockito工具,其中有如下三种注解:@InjectMocks:创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
-
雪花算法(Snowflake)是由Twitter开发的一种分布式ID生成算法,旨在为分布式系统提供一种简单而有效的方式,以生成全局唯一、有序且可排序的64位整数ID。这种ID通常用作数据库记录的主键或其他需要唯一标识符的场景。雪花算法生成的64位ID结构如下:最高位(第64位):固定为0,因为64位
-
在HTML中,如果你想让一个输入框(input元素)不可编辑,你可以通过设置其readonly属性来实现。示例如下:input type="text" value="此处内容不可编辑" readonly在上述代码中,readonly属性使得用户无法修改输入框中的内容。另外,如果你希望输入框完全不可交
-
ASP.NET教程ASP.NET又称为ASP+,基于.NETFramework的Web开发平台,是微软公司推出的新一代脚本语言。ASP.NET是一个使用HTML、CSS、JavaScript和服务器脚本创建网页和网站的开发框架。ASP.NET支持三种不一样的开发模式:WebPages(Web页面)、
-
C# 判断判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。下面是大多数编程语言中典型的判断结构的通常形式:判断语句C#提供了以下类型的判断语句。点击链接查看每个语句的细节。语句描述if语句一个 if语句 由一个布尔表达式后跟
-
C#循环有的时候,可能需要多次执行同一块代码。通常情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的通常形式:循环类型C#提供了以下几种循环类型