📅  最后修改于: 2020-11-21 05:47:25             🧑  作者: Mango
ADO.NET在前端控件和后端数据库之间提供了桥梁。 ADO.NET对象封装了所有数据访问操作,并且控件与这些对象进行交互以显示数据,从而隐藏了数据移动的详细信息。
下图使ADO.NET对象一目了然:
数据集代表数据库的子集。它没有与数据库的连续连接。要更新数据库,需要重新连接。 DataSet包含DataTable对象和DataRelation对象。 DataRelation对象表示两个表之间的关系。
下表显示了DataSet类的一些重要属性:
Properties | Description |
---|---|
CaseSensitive | Indicates whether string comparisons within the data tables are case-sensitive. |
Container | Gets the container for the component. |
DataSetName | Gets or sets the name of the current data set. |
DefaultViewManager | Returns a view of data in the data set. |
DesignMode | Indicates whether the component is currently in design mode. |
EnforceConstraints | Indicates whether constraint rules are followed when attempting any update operation. |
Events | Gets the list of event handlers that are attached to this component. |
ExtendedProperties | Gets the collection of customized user information associated with the DataSet. |
HasErrors | Indicates if there are any errors. |
IsInitialized | Indicates whether the DataSet is initialized. |
Locale | Gets or sets the locale information used to compare strings within the table. |
Namespace | Gets or sets the namespace of the DataSet. |
Prefix | Gets or sets an XML prefix that aliases the namespace of the DataSet. |
Relations | Returns the collection of DataRelation objects. |
Tables | Returns the collection of DataTable objects. |
下表显示了DataSet类的一些重要方法:
Methods | Description |
---|---|
AcceptChanges | Accepts all changes made since the DataSet was loaded or this method was called. |
BeginInit | Begins the initialization of the DataSet. The initialization occurs at run time. |
Clear | Clears data. |
Clone | Copies the structure of the DataSet, including all DataTable schemas, relations, and constraints. Does not copy any data. |
Copy | Copies both structure and data. |
CreateDataReader() | Returns a DataTableReader with one result set per DataTable, in the same sequence as the tables appear in the Tables collection. |
CreateDataReader(DataTable[]) | Returns a DataTableReader with one result set per DataTable. |
EndInit | Ends the initialization of the data set. |
Equals(Object) | Determines whether the specified Object is equal to the current Object. |
Finalize | Free resources and perform other cleanups. |
GetChanges | Returns a copy of the DataSet with all changes made since it was loaded or the AcceptChanges method was called. |
GetChanges(DataRowState) | Gets a copy of DataSet with all changes made since it was loaded or the AcceptChanges method was called, filtered by DataRowState. |
GetDataSetSchema | Gets a copy of XmlSchemaSet for the DataSet. |
GetObjectData | Populates a serialization information object with the data needed to serialize the DataSet. |
GetType | Gets the type of the current instance. |
GetXML | Returns the XML representation of the data. |
GetXMLSchema | Returns the XSD schema for the XML representation of the data. |
HasChanges() | Gets a value indicating whether the DataSet has changes, including new, deleted, or modified rows. |
HasChanges(DataRowState) | Gets a value indicating whether the DataSet has changes, including new, deleted, or modified rows, filtered by DataRowState. |
IsBinarySerialized | Inspects the format of the serialized representation of the DataSet. |
Load(IDataReader, LoadOption, DataTable[]) | Fills a DataSet with values from a data source using the supplied IDataReader, using an array of DataTable instances to supply the schema and namespace information. |
Load(IDataReader, LoadOption, String[]) | Fills a DataSet with values from a data source using the supplied IDataReader, using an array of strings to supply the names for the tables within the DataSet. |
Merge() | Merges the data with data from another DataSet. This method has different overloaded forms. |
ReadXML() | Reads an XML schema and data into the DataSet. This method has different overloaded forms. |
ReadXMLSchema(0) | Reads an XML schema into the DataSet. This method has different overloaded forms. |
RejectChanges | Rolls back all changes made since the last call to AcceptChanges. |
WriteXML() | Writes an XML schema and data from the DataSet. This method has different overloaded forms. |
WriteXMLSchema() | Writes the structure of the DataSet as an XML schema. This method has different overloaded forms. |
DataTable类表示数据库中的表。它具有以下重要特性;这些属性中的大多数都是只读属性,但PrimaryKey属性除外:
Properties | Description |
---|---|
ChildRelations | Returns the collection of child relationship. |
Columns | Returns the Columns collection. |
Constraints | Returns the Constraints collection. |
DataSet | Returns the parent DataSet. |
DefaultView | Returns a view of the table. |
ParentRelations | Returns the ParentRelations collection. |
PrimaryKey | Gets or sets an array of columns as the primary key for the table. |
Rows | Returns the Rows collection. |
下表显示了DataTable类的一些重要方法:
Methods | Description |
---|---|
AcceptChanges | Commits all changes since the last AcceptChanges. |
Clear | Clears all data from the table. |
GetChanges | Returns a copy of the DataTable with all changes made since the AcceptChanges method was called. |
GetErrors | Returns an array of rows with errors. |
ImportRows | Copies a new row into the table. |
LoadDataRow | Finds and updates a specific row, or creates a new one, if not found any. |
Merge | Merges the table with another DataTable. |
NewRow | Creates a new DataRow. |
RejectChanges | Rolls back all changes made since the last call to AcceptChanges. |
Reset | Resets the table to its original state. |
Select | Returns an array of DataRow objects. |
DataRow对象表示表中的一行。它具有以下重要属性:
Properties | Description |
---|---|
HasErrors | Indicates if there are any errors. |
Items | Gets or sets the data stored in a specific column. |
ItemArrays | Gets or sets all the values for the row. |
Table | Returns the parent table. |
下表显示了DataRow类的一些重要方法:
Methods | Description |
---|---|
AcceptChanges | Accepts all changes made since this method was called. |
BeginEdit | Begins edit operation. |
CancelEdit | Cancels edit operation. |
Delete | Deletes the DataRow. |
EndEdit | Ends the edit operation. |
GetChildRows | Gets the child rows of this row. |
GetParentRow | Gets the parent row. |
GetParentRows | Gets parent rows of DataRow object. |
RejectChanges | Rolls back all changes made since the last call to AcceptChanges. |
DataAdapter对象充当DataSet对象和数据库之间的中介。这有助于数据集包含来自多个数据库或其他数据源的数据。
DataReader对象是DataSet和DataAdapter组合的替代方法。该对象提供对数据库中数据记录的面向连接的访问。这些对象适用于只读访问,例如填充列表然后断开连接。
DbConnection对象表示与数据源的连接。该连接可以在不同的命令对象之间共享。
DbCommand对象表示通过检索或操作数据发送到数据库的命令或存储过程。
到目前为止,我们已经使用了计算机中已经存在的表和数据库。在此示例中,我们将创建一个表,在其中添加列,行和数据,并使用GridView对象显示该表。
源文件代码如下:
Untitled Page
文件后面的代码如下:
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()创建表并将其添加到数据集的Tables集合中。
CreateStudentTable()方法调用用户定义的方法AddNewColumn()和AddNewRow()来创建表的列和行以及向行添加数据。
页面执行后,将返回表的行,如下所示: