ADO.NET bietet eine Brücke zwischen Front-End-Steuerelementen und Back-End-Datenbanken. ADO.NET-Objekte kapseln alle Datenzugriffsvorgänge und Steuerelemente, die mit Datenanzeigeobjekten interagieren. Die Details der Datenbewegung werden somit ausgeblendet.
Das folgende Diagramm zeigt das ADO.NET-Objekt als Ganzes:
Ein Datensatz stellt eine Teilmenge einer Datenbank dar. Es besteht keine dauerhafte Verbindung zur Datenbank. Zum Aktualisieren der Datenbank ist eine erneute Verbindung erforderlich. DataSet umfasst DataTable- und DataRelation-Objekte. DataRelation-Objekte stellen die Beziehung zwischen zwei Tabellen dar.
Die folgende Tabelle enthält einige wichtige Eigenschaften der DataSet-Klasse:
Eigentum | beschreiben |
---|---|
Groß-/Kleinschreibung beachten | Gibt an, ob bei der mit der Datentabelle zu vergleichenden Zeichenfolge die Groß-/Kleinschreibung beachtet wird. |
Container | Schaffen Sie Platz für die Komponente. |
DataSetName | Ruft den Namen einer vorhandenen Datensammlung ab oder legt diesen fest. |
DefaultViewManager | Gibt eine Ansicht der Daten in der Datensammlung zurück. |
DesignModus | Gibt an, ob sich die Komponente im Entwurfsmodus befindet. |
EnforceConstraints | Gibt an, ob Einschränkungen beim Versuch, eine Datei hochzuladen, beachtet werden. |
Veranstaltungen | Rufen Sie die Liste der Ereignishandler ab, die sich auf diese Komponente beziehen. |
Erweiterte Eigenschaften | Ruft eine Sammlung benutzerdefinierter Benutzerinformationen im Zusammenhang mit dem DataSet ab. |
HasErrors | Geben Sie an, ob Fehler vorliegen. |
Ist initialisiert | Gibt an, ob das DataSet initialisiert ist. |
Gebietsschema | Ruft Informationen ab, die zum Vergleichen von Zeichenfolgen mit der Tabelle verwendet werden, oder legt diese fest. |
Namensraum | Ruft den Namespace des DataSet ab oder legt diesen fest. |
Präfix | Ruft ein XML-Präfix ab, das ein Alias für einen Namespace ist, oder legt dieses fest. |
Beziehungen | Gibt eine Sammlung von DataRelation-Objekten zurück. |
Tische | Gibt eine Sammlung von DataTable-Objekten zurück. |
In der folgenden Tabelle sind einige wichtige Methoden der DataSet-Klasse aufgeführt:
Verfahren | beschreiben |
---|---|
Änderungen akzeptieren | Akzeptiert alle Änderungen aufgrund des Ladens des DataSets oder dieser Methode. |
BeginInit | Starten Sie die Initialisierung von DataSet. Diese Initialisierung erfolgt zur Laufzeit. |
Klar | Klare Daten. |
Klon | Klonen Sie die Struktur des DataSet einschließlich aller DataTable-Strukturen, Beziehungen und Einschränkungen. Die Daten werden jedoch nicht geklont. |
Kopie | Daten und Strukturen kopieren. |
CreateDataReader() | Gibt einen DataTableReader mit einem Ergebnissatz für jede DataTable in derselben Reihenfolge zurück, in der die Tabellen in der Tables-Auflistung angezeigt werden. |
CreateDataReader(DataTable[]) | Gibt einen DataTableReader mit einem Ergebnissatz für jede DataTable zurück. |
EndInit | Beendet die Initialisierung eines DataSets, das in einem Formular oder von einer anderen Komponente verwendet wird. Die Initialisierung erfolgt zur Laufzeit. |
Gleicht (Objekt) | Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. |
Abschließen | Geben Sie Ressourcen frei, um zusätzliche Bereinigungen durchzuführen. |
GetChanges | Ruft eine Kopie des DataSet ab, die alle Änderungen am DataSet seit dem Laden oder seit dem letzten Aufruf von AcceptChanges enthält. |
GetChanges(DataRowState) | Ruft eine Kopie des nach DataRowState gefilterten DataSet ab, die alle Änderungen am Datensatz seit dem letzten Laden oder seit dem Aufruf von AcceptChanges enthält. |
GetDataSetSchema | Holen Sie sich eine Kopie des XmlSchemaSet für das DataSet. |
GetObjectData | Füllen Sie das serialisierte Informationsobjekt mit den Daten, die zum Serialisieren des DataSet erforderlich sind. |
GetType | Rufen Sie den Typ der aktuellen Instanz ab. |
Holen Sie sich XML | Gibt eine XML-Darstellung der im DataSet gespeicherten Daten zurück. |
GetXMLSchema | Gibt das XML-Schema der XML-Darstellung der im DataSet gespeicherten Daten zurück. |
HasChanges() | Ruft einen Wert ab, der angibt, ob sich das DataSet geändert hat, einschließlich neuer Zeilen, gelöschter Zeilen oder geänderter Zeilen. |
HasChanges(DataRowState) | Ruft einen Wert ab, der angibt, ob das DataSet über DataRowState-gefilterte Änderungen verfügt, einschließlich neuer Zeilen, gelöschter Zeilen oder geänderter Zeilen. |
IsBinarySerialized | Überprüfen Sie das Format der serialisierten Darstellung des DataSet. |
Load(IDataReader, LoadOption, DataTable[]) | Verwenden Sie den bereitgestellten IDataReader, um das DataSet mit Werten aus der Datenquelle zu füllen, und verwenden Sie gleichzeitig ein Array von DataTable-Instanzen, um Schema- und Namespace-Informationen bereitzustellen. |
Load(IDataReader, LoadOption, String[]) | Füllen Sie das DataSet mit Werten aus der Datenquelle, indem Sie den bereitgestellten IDataReader verwenden und ein String-Array verwenden, um Namen für die Tabellen im DataSet bereitzustellen. |
Verschmelzen() | Führt das angegebene Array von DataSet-, DataTable- oder DataRow-Objekten mit dem aktuellen DataSet oder der aktuellen DataTable zusammen. Es gibt verschiedene Überladungen dieser Methode. |
ReadXML() | Lesen Sie das XML-Schema und die Daten in das DataSet ein. Es gibt verschiedene Überladungen dieser Methode. |
ReadXMLSchema(0) | Lesen Sie das XML-Schema in das DataSet ein. Es gibt verschiedene Überladungen dieser Methode. |
Änderungen ablehnen | Machen Sie alle Änderungen rückgängig, die am DataSet seit seiner Erstellung oder seit dem letzten Aufruf von DataSet.AcceptChanges vorgenommen wurden. |
WriteXML() | Schreiben Sie XML-Daten und Schemata aus DataSet. Es gibt verschiedene Überladungen dieser Methode. |
WriteXMLSchema() | Schreiben Sie ein XML-Schema aus DataSet. Es gibt verschiedene Überladungen dieser Methode. |
Die DataTable-Klasse repräsentiert eine Tabelle in einer Datenbank. Es verfügt über die folgenden wichtigen Eigenschaften: Die meisten Eigenschaften sind schreibgeschützt, mit Ausnahme der PrimaryKey-Eigenschaft:
Eigentum | beschreiben |
---|---|
Kinderbeziehungen | Ruft die Sammlung untergeordneter Beziehungen dieser DataTable ab. |
Spalten | Ruft die Auflistung der zu dieser Tabelle gehörenden Spalten ab. |
Einschränkungen | Ruft die Sammlung von Einschränkungen ab, die von dieser Tabelle verwaltet werden. |
Datensatz | Rufen Sie das DataSet ab, zu dem diese Tabelle gehört. |
Standardansicht | Ruft eine benutzerdefinierte Ansicht einer Tabelle ab, die gefilterte Ansichten oder Cursorpositionen enthalten kann. |
ParentRelations | Ruft die Auflistung der übergeordneten Beziehungen dieser DataTable ab. |
Primärschlüssel | Ruft das Array von Spalten ab, die als Primärschlüssel für die Datentabelle dienen, oder legt dieses fest. |
Reihen | Ruft die Auflistung der zu dieser Tabelle gehörenden Zeilen ab. |
In der folgenden Tabelle sind einige wichtige Methoden der DataTable-Klasse aufgeführt:
Verfahren | beschreiben |
---|---|
Änderungen akzeptieren | Überträgt alle Änderungen, die an diesem DataSet seit dem Laden oder seit dem letzten Aufruf von AcceptChanges vorgenommen wurden. |
Klar | Löscht alle Daten aus dem DataSet, indem alle Zeilen aus allen Tabellen entfernt werden. |
GetChanges | Ruft eine Kopie des DataSet ab, die alle Änderungen am DataSet seit dem letzten Laden oder seit dem Aufruf von AcceptChanges enthält. |
GetErrors | Ruft ein Array von DataRow-Objekten ab, die Fehler enthalten. |
Zeilen importieren | Kopieren Sie die DataRow in die DataTable und behalten Sie dabei alle Eigenschaftseinstellungen sowie Anfangs- und aktuellen Werte bei. |
LoadDataRow | Suchen und aktualisieren Sie bestimmte Zeilen. Wenn keine passende Zeile gefunden wird, wird eine neue Zeile mit dem angegebenen Wert erstellt. |
Verschmelzen | Führt das angegebene Array von DataSet-, DataTable- oder DataRow-Objekten mit dem aktuellen DataSet oder der aktuellen DataTable zusammen. |
Neue Zeile | Erstellen Sie eine neue DataRow mit demselben Schema wie die Tabelle. |
Änderungen ablehnen | Machen Sie alle Änderungen rückgängig, die seit dem Laden der Tabelle oder seit dem letzten Aufruf von AcceptChanges an der Tabelle vorgenommen wurden. |
Zurücksetzen | Löscht alle Tabellen und entfernt alle Beziehungen, externen Einschränkungen und Tabellen aus dem DataSet. Unterklassen sollten Reset überschreiben, um das DataSet in seinen ursprünglichen Zustand zurückzusetzen. |
Wählen | Ruft ein Array von DataRow-Objekten ab. |
Das DataRow-Objekt stellt eine Zeile in der Tabelle dar und verfügt über die folgenden wichtigen Eigenschaften:
Eigentum | beschreiben |
---|---|
HasErrors | Zeigt an, ob Fehler vorliegen. |
Artikel | Rufen Sie die in einer bestimmten Spalte gespeicherten Daten ab oder legen Sie sie fest. |
ItemArrays | Alle Werte in dieser Zeile abrufen oder festlegen. |
Tisch | Gibt die übergeordnete Tabelle zurück. |
In der folgenden Tabelle sind die wichtigen Methoden der DataRow-Klasse aufgeführt:
Verfahren | beschreiben |
---|---|
Änderungen akzeptieren | Wendet alle Änderungen seit dem Aufruf dieser Methode an. |
BeginnenBearbeiten | Bearbeitungsvorgang starten. |
AbbrechenBearbeiten | Brechen Sie den Bearbeitungsvorgang ab. |
Löschen | Datenzeilen löschen. |
EndeBearbeiten | Beenden Sie den Bearbeitungsvorgang. |
GetChildRows | Rufen Sie die Unterzeilen dieser Zeile ab. |
GetParentRow | Holen Sie sich die übergeordnete Zeile. |
GetParentRows | Rufen Sie die übergeordnete Zeile der DataRow ab. |
Änderungen ablehnen | Machen Sie alle nach dem Aufruf von AcceptChanges vorgenommenen Änderungen rückgängig. |
Das DataAdapter-Objekt fungiert als Vermittler zwischen dem DataSet-Objekt und der Datenbank. Dies hilft dem DataSet, Daten aus mehreren Datenbanken oder anderen Datenquellen zu erhalten.
DataReader-Objekte sind eine Alternative zur Kombination von DataSet und DataAdapter. Dieses Objekt ermöglicht den gezielten Zugriff auf Datensätze in der Datenbank. Diese Objekte sind nur für den lesenden Zugriff geeignet, z. B. zum Füllen und anschließenden Trennen einer Liste.
Das DbConnection-Objekt stellt die Verbindung zur Datenquelle dar. Diese Verbindung kann von verschiedenen Befehlsobjekten gemeinsam genutzt werden. Ein DbCommand-Objekt stellt einen Befehl oder einen gespeicherten Prozess dar, der zum Abrufen oder Bearbeiten von Daten an die Datenbank gesendet wird.
Bisher haben wir Tabellen und Datenbanken von unseren Computern genutzt. In diesem Fall erstellen wir eine Tabelle, fügen Spalten, Zeilen und Daten hinzu und zeigen die Tabelle mithilfe eines GridView-Steuerelements an.
Der Quelldateicode lautet wie folgt:
<%@ 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>
Der Code der Datei lautet wie folgt:
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, "MH 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); } }}
Beachten Sie beim Ausführen des Programms folgende Aspekte:
Das Programm erstellt zunächst eine Datensammlung und bindet diese dann mithilfe der DataBind()-Methode des GridView-Steuerelements.
Die Createdataset()-Methode ist eine benutzerdefinierte Funktion, die ein neues DataSet-Objekt erstellt und die zusätzliche benutzerdefinierte CreateStudentTable()-Methode aufruft, um Tabellen zu erstellen und diese dann der Tabellensammlung des DataSets hinzuzufügen.
Die Methode CreateStudentTable() ruft die benutzerdefinierten Methoden AddNewColumn() und AddNewRow() auf, um die Spalten und Zeilen der Tabelle zu erstellen und Daten zu den Zeilen hinzuzufügen. Wenn die Seite ausgeführt wird, werden die Tabellenzeilen wie folgt zurückgegeben: