Heim  >  Artikel  >  Backend-Entwicklung  >  SUNWEN-Tutorial – C# für Fortgeschrittene (8)

SUNWEN-Tutorial – C# für Fortgeschrittene (8)

黄舟
黄舟Original
2016-12-19 10:24:261024Durchsuche

Worüber ich in diesem Abschnitt sprechen möchte, ist der Teil, der allen sehr am Herzen liegt und an dem er sehr interessiert sein muss. Hey, es ist auch der Teil, über den ich am besten Tutorials schreiben kann – ADO-Datenbankzugriff , ich erinnere mich, dass ich letztes Jahr eine Artikelserie zum Thema „Zugriff auf Datenbanken“ geschrieben habe, hehe! Wenn Sie also Schwierigkeiten haben, Dinge wie Datensatzsätze zu verstehen, empfehle ich Ihnen, zuerst meine Artikel zu lesen. Okay, fangen wir an . Auf geht's!

Was ist ADO (ActiveX Data Objects übersetzt als ActiveX Data Objects)? Eine Idee, die Ihnen den Zugriff auf Daten auf nur eine Weise ermöglicht, ist nicht neu Die Idee besteht darin, vorhandene Datenzugriffstechnologien zu nutzen und sie zu integrieren. Wenn Sie ADO nicht verstehen, denken Sie an ODBC. Erinnern Sie sich noch daran, dass wir ADO verwendet haben? ? Haben Sie set conn=Server.CreateObject("ADODB.Connection") unzählige Male verwendet? Ich verstehe es nicht. Stellen Sie es sich einfach als ein Tool vor, das uns M$ für den Zugriff auf Daten zur Verfügung stellt!

OK, das folgende Beispiel basiert auf einer Datenbank von M$ Access 2000. Seine Struktur ist wie folgt, und die Der Tabellenname lautet „Categories“, der Dateiname lautet „BugTypes.mdb“. Erstellen Sie schnell einen:

Kategorie-ID Kategoriename
1 Bugbash-Sachen
2 Appweek-Fehler
3 .NET-Berichte
4 Interner Support

Okay, lassen Sie mich zuerst alle Programme aufschreiben und sie dann Satz für Satz probieren:

000: // ADOadosample.cs
001: using System;
002: System.Data verwenden;
003: System.Data.ADO verwenden;
004:
005: öffentliche Klasse MainClass
006: {
007: öffentliche statische Leere Main ( )
008: {
009: // Verbindungszeichenfolge festlegen und Befehlszeichenfolge auswählen 010: string strAccessConn = "PRovider=Microsoft.Jet.OLEDB.4.0;Data Source=BugTypes.MDB";
011 : string strAccessSelect = "SELECT * FROM Category";
012:
013: //Einen Datensatz erstellen und die Kategorientabelle ausfüllen
014: DataSet myDataSet = new DataSet();
015: myDataSet.Tables.Add("Categories");
016:
017: //ADO-Instanz erstellen 018: ADOConnection myAccessConn = new ADOConnection(strAccessConn);
019: ADODataSetCommand myAccessDataSetCmd = new ADODataSetCommand( );
020: myAccessDataSetCmd.SelectCommand = new ADOCommand(strAccessSelect,myAccessConn);
021:
022: myAccessConn.Open();
023: try
024: {
025: myAccessDataSetCmd.FillDataSet(myDataSet,"Categories");
026: }
027: endlich
028: {
029: myAccessConn.Close();
030: }
031:
032: try
033: {
034: // Ein Recordset kann mehrere Tabellen enthalten, wir fügen sie in ein Array ein 035: DataTable[] dta = myDataSet.Tables;
036: foreach (DataTable dt in dta)
037: {
038: Console.WriteLine("Found data table {0}", dt.TableName);
039: }
040:
041: //Die folgenden beiden Programmzeilen zeigen zwei Methoden zum Abrufen der Anzahl der Tabellen in einem Datensatz aus einem Datensatz
042: Console.WriteLine("{0} tables in data set ", myDataSet .Tables.Count);
043: Console.WriteLine("{0} tables in data set", dta.Length);
044: //Die folgenden Programmzeilen veranschaulichen, wie aus einem Datensatz gelesen wird set verlässt sich auf den Namen der Tabelle, um Informationen zu erhalten
045: Console.WriteLine("{0} Zeilen in der Kategorientabelle", myDataSet.Tables["Categories"].Rows.Count);
046: / /Column Die Informationen werden automatisch aus der Datenbank abgerufen, sodass wir den folgenden Code 047 verwenden können: Console.WriteLine("{0} columns in Category table", myDataSet.Tables["Categories"].Columns.Count);
048: DataColumn[] drc = myDataSet.Tables["Categories"].Columns.All;
049: int i = 0;
050: foreach (DataColumn dc in drc)
051: {
052: //Spaltenindex, Spaltennamen und Datentyp ausdrucken 053: Console.WriteLine("Spaltenname[{0}] ist {1}, vom Typ {2}",i++, dc.ColumnName, dc .DataType);
054: }
055: DataRow[] dra = myDataSet.Tables["Categories"].Rows.All;
056: foreach (DataRow dr in dra)
057 : {
058: //CategoryID und CategoryName ausdrucken059: Console.WriteLine("CategoryName[{0}] is {1}", dr[0], dr[1]);
060: }
061: }
062: Catch (Ausnahme e)
063: {
064: Console.WriteLine("Oooops. Es wurde eine Ausnahme abgefangen:n{0}", e.Message);
065: 🎜>066: 🎜>067: 🎜>Es scheint, dass dieses Beispiel etwas kompliziert ist. Es ist nur so, dass ich das Beispiel schlecht gewählt habe, haha, aber nach sorgfältiger Analyse kann es immer noch verstanden werden . Lassen Sie mich nun auf einige Besonderheiten in diesem Beispiel eingehen. Das erste ist, dass eine Befehlszeichenfolge wie ein Befehlsobjekt behandelt werden muss. Beachten Sie, dass es in 015 ein myDataSet.Tables gibt. Add("Categories")-Anweisung in der Zeile. Dies füllt nicht die Kategorientabelle in der Datenbank aus, sondern erstellt nur eine leere Tabelle, und 025 ist das eigentliche Füllen von Daten.

Die Ausgabe davon Beispiel ist:

찾은 데이터 테이블 카테고리
데이터 세트의 테이블 1개
데이터 세트의 테이블 1개
카테고리 테이블의 4개 행
카테고리 테이블의 열 2개
열 이름[0]은 CategoryID, Int32
열 이름[1]은 CategoryName이고, System.String
CategoryName[1]은 Bugbash 항목입니다.
CategoryName[2]은 Appweek Bugs
CategoryName[3]은 .NET 보고서입니다.
CategoryName[4]은 내부 지원입니다
그럼 그만 얘기하자 SUNWEN은 정말 자고 싶어하고 더 이상 음악이 작동하지 않습니다. 하하 이 예를 완전히 이해하려면 많은 노력이 필요합니다.

위 내용은 SUNWEN 튜토리얼 - C# 고급(8) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn