Πώς να συμπληρώσετε ένα αντικείμενο DataSet από μια βάση δεδομένων χρησιμοποιώντας το .NET Visual C#

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 314145
Για την έκδοση Microsoft .NET Visual Basic αυτού του άρθρου, ανατρέξτε στην ενότητα 301216.

Αυτό το άρθρο αναφέρεται από τον ακόλουθο χώρο ονομάτων βιβλιοθήκη κλάσης .NET με Microsoft Framework:
  • System.Data.SqlClient

ΣΕ ΑΥΤΉΝ ΤΗΝ ΕΡΓΑΣΊΑ

Περίληψη
Αντικείμενα DataSet , ένα σημαντικό τμήμα της πρόσβασης σε δεδομένα στο Microsoft .NET Framework είναι αντικείμενα στη μνήμη που μπορεί να περιέχει πίνακες, προβολές και σχέσεις. Αυτό το άρθρο επιδεικνύει τον τρόπο για να γεμίσετε ένα αντικείμενο DataSet με τα αποτελέσματα της ένα ή περισσότερα ερωτήματα βάσεων δεδομένων και για να αποκτήσετε πρόσβαση σε αυτά τα δεδομένα μετά τη φόρτωσή του στο αντικείμενο DataSet .

Απαιτήσεις

Η ακόλουθη λίστα περιγράφει τα υλικού που συνιστώνται, λογισμικό, υποδομή δικτύου και τα service pack που χρειάζεστε:
  • Τα Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ή Windows NT 4.0 Server
  • Microsoft SQL Server 7.0, Microsoft SQL Server 2000 ή μηχανισμό διαχείρισης δεδομένων Microsoft με το δείγμα βάσης δεδομένων Pubs εγκατεστημένο
  • Microsoft Visual Studio .NET
Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τα ακόλουθα θέματα:
  • Ορολογία βάσης δεδομένων
  • Structured Query Language (SQL)

Συμπλήρωση ενός συνόλου δεδομένων

Χρησιμοποιώντας μια ποικιλία αντικειμένων από μέσα στο χώρο ονομάτων System.Data , μπορείτε να συνδεθείτε σε ένα διακομιστή βάσης δεδομένων, εκτελέστε ένα ερώτημα και έχετε τοποθετήσει τα αποτελέσματα σε ένα αντικείμενο DataSet . Το σύνολο δεδομένων είναι ένα αντικείμενο χωρίς σύνδεση. Επομένως, μετά τη φόρτωση των δεδομένων, η σύνδεση με τη βάση δεδομένων δεν χρησιμοποιείται πλέον παρά μόνο όταν θέλετε να φορτώσετε περισσότερα δεδομένα ή να ενημερώσετε το διακομιστή με τις αλλαγές που έχετε κάνει στο δικό σας αντίγραφο στη μνήμη των πληροφοριών.

Για να φορτώσετε δεδομένα από μια βάση δεδομένων σε ένα σύνολο δεδομένων, ακολουθήστε τα εξής βήματα:
  1. Ξεκινήστε το Visual Studio .NET.
  2. Δημιουργήστε ένα νέο έργο εφαρμογής κονσόλας στο .NET C# οπτικά. Οπτική .NET στο Studio δημιουργεί μια στατική κλάση, μαζί με μια κενή κύρια διαδικασία.
  3. Βεβαιωθείτε ότι το έργο αναφορές των χώρων ονομάτων συστήματος και System.Data .
  4. Χρησιμοποιήστε την πρόταση χρησιμοποιώντας σχετικά με τα πεδία ονομάτων του συστήματος, System.Dataκαι System.Data.SqlClient , έτσι ώστε δεν είναι απαραίτητο να εγκρίνετε δηλώσεις από αυτούς τους χώρους ονομάτων αργότερα στον κώδικά σας. Πρέπει να χρησιμοποιήσετε αυτές τις προτάσεις πριν από άλλες δηλώσεις.
    using System;using System.Data;using System.Data.SqlClient;					
  5. Το πρώτο βήμα για τη λήψη δεδομένων από τη βάση δεδομένων για το σύνολο δεδομένων είναι να δημιουργήσετε μια σύνδεση βάσης δεδομένων, η οποία απαιτεί ένα αντικείμενο System.Data.SqlClient.SqlCommand και μια συμβολοσειρά σύνδεσης. Η συμβολοσειρά σύνδεσης σε κώδικα για να ακολουθήσετε συνδέεται σε ένα διακομιστή SQL Server που βρίσκεται στον τοπικό υπολογιστή (ο υπολογιστής όπου εκτελείται ο κώδικας). Πρέπει να τροποποιήσετε αυτήν τη συμβολοσειρά σύνδεσης που είναι κατάλληλη για το περιβάλλον σας. Μετά τη δημιουργία του αντικειμένου SqlConnection , η κλήση της μεθόδου Open του αντικειμένου αυτού, για να αποκαταστήσετε τη σύνδεση τη βάση δεδομένων.
    string sConnectionString;sConnectionString = "Password=myPassword;User ID=myUserID;"  					   + "Initial Catalog=pubs;"						+ "Data Source=(local)";SqlConnection objConn	= new SqlConnection(sConnectionString);objConn.Open();					
  6. Δημιουργήστε ένα αντικείμενο DataAdapter , που αντιπροσωπεύει τη σύνδεση μεταξύ της βάσης δεδομένων και το αντικείμενο DataSet . Μπορείτε να καθορίσετε SQL ή άλλο τύπο εντολής που χρησιμοποιείται για την ανάκτηση δεδομένων ως τμήμα του αντικειμένου από το DataAdapterκατασκευή. Αυτό το δείγμα χρησιμοποιεί μια πρόταση SQL που ανακτά εγγραφές από τον πίνακα Authors, στη βάση δεδομένων Pubs.
    SqlDataAdapter daAuthors 	= new SqlDataAdapter("Select * From Authors", objConn);					
  7. Πρέπει να δηλώνουν και να δημιουργήσει μια παρουσία ενός αντικειμένου DataSet , οπότε μπορείτε να δώσετε ένα όνομα για το ολόκληρο το σύνολο δεδομένων πριν μπορέσετε να ξεκινήσετε για να φορτώσετε τα δεδομένα. Το όνομα μπορεί να περιέχει πολλούς πίνακες ξεχωριστά.
    DataSet dsPubs = new DataSet("Pubs");					
  8. Η κλάση SqlDataAdapter παρέχει δύο μεθόδους, Συμπλήρωση και FillSchema, που είναι κρίσιμες για τη φόρτωση αυτών των δεδομένων. Και οι δύο αυτές μέθοδοι φόρτωση των πληροφοριών σε ένα σύνολο δεδομένων. Συμπλήρωση φορτώνει τα ίδια τα δεδομένα και FillSchema φορτώνει όλα τα διαθέσιμα μετα-δεδομένα σχετικά με ένα συγκεκριμένο πίνακα (όπως ονόματα στηλών, πρωτευόντων κλειδιών και περιορισμούς). Είναι ένας καλός τρόπος για να χειριστείτε τα δεδομένα κατά τη φόρτωση για την εκτέλεση FillSchema , ακολουθούμενο από το Γέμισμα. Για παράδειγμα:
    daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");daAuthors.Fill(dsPubs,"Authors");						
    Εάν χρησιμοποιείτε μόνο γεμίσματος, μπορείτε να φορτώσετε μόνο τα βασικά μετα-δεδομένα που απαιτούνται για να περιγράψει τα ονόματα στηλών και τύπους δεδομένων. Η μέθοδος γεμίσματος δεν φορτώνει πληροφορίες πρωτεύοντος κλειδιού. Για να αλλάξετε αυτήν την προεπιλεγμένη συμπεριφορά, μπορείτε να ορίσετε την ιδιότητα MissingSchemaAction του αντικειμένου DataAdapter σε MissingSchemaAction.AddWithKey, που φορτώνει το πρωτεύοντος κλειδιού μετα-δεδομένων μαζί με τις προεπιλεγμένες πληροφορίες. Για παράδειγμα:
    daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;daAuthors.Fill(dsPubs,"Authors");					
  9. Τα δεδομένα είναι τώρα διαθέσιμο ως μεμονωμένο αντικείμενο DataTable μέσα στη συλλογή πινάκων του συνόλου δεδομένων. Εάν έχετε καθορίσει ένα όνομα πίνακα στις προσκλήσεις για να FillSchema και να συμπληρώσετε, μπορείτε να χρησιμοποιήσετε αυτό το όνομα, για να αποκτήσετε πρόσβαση στον συγκεκριμένο πίνακα που θέλετε.
    DataTable tblAuthors;tblAuthors = dsPubs.Tables["Authors"];					
  10. Μπορείτε να χρησιμοποιήσετε ένα για κάθε βρόχο σε βρόχο μέσω όλα τα αντικείμενα DataRow μέσα στη συλλογή γραμμών ενός DataTable. Αυτό σας δίνει πρόσβαση σε κάθε γραμμή του πίνακα. Μπορείτε να προσπελάσετε στηλών με βάση το όνομα ή ανάλογα με τη θέση ευρετηρίου (με «0» είναι η πρώτη θέση στήλης). Για παράδειγμα:
    foreach (DataRow drCurrent in tblAuthors.Rows){	Console.WriteLine("{0} {1}",		drCurrent["au_fname"].ToString(),		drCurrent["au_lname"].ToString());}Console.ReadLine();					
  11. Αποθηκεύστε το έργο σας. Από το μενού Εντοπισμός σφαλμάτων , κάντε κλικ στο κουμπί Έναρξη για να εκτελέσετε το έργο σας και βεβαιωθείτε ότι λειτουργεί.

Ολοκληρώσετε την καταχώρηση κωδικού

using System;using System.Data;using System.Data.SqlClient;namespace PopulateDataSet{	/// <summary>	/// Summary description for Class1.	/// </summary>	class Class1	{		static void Main(string[] args)		{			string sConnectionString;			sConnectionString = "Password=myPassword;User ID=myUserID;"								+ "Initial Catalog=pubs;"								+ "Data Source=(local)";			SqlConnection objConn				= new SqlConnection(sConnectionString);			objConn.Open();			SqlDataAdapter daAuthors 				= new SqlDataAdapter("Select * From Authors", objConn);			DataSet dsPubs = new DataSet("Pubs");			daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");daAuthors.Fill(dsPubs,"Authors");			DataTable tblAuthors;			tblAuthors = dsPubs.Tables["Authors"];			foreach (DataRow drCurrent in tblAuthors.Rows)			{				Console.WriteLine("{0} {1}",					drCurrent["au_fname"].ToString(),					drCurrent["au_lname"].ToString());			}			Console.ReadLine();		}	}}				
Αναφορές
Για περισσότερες πληροφορίες σχετικά με το ADO.NET, αντικείμενα DataSet και SQL, ανατρέξτε στις ακόλουθες τοποθεσίες της Microsoft στο Web:
"Καταδύσεις σε πρόσβαση δεδομένων" (μια στήλη MSDN φωνές από Dino Esposito)
http://msdn2.Microsoft.com/en-us/library/ms810293.aspx

ADO.NET του για το Εγχειρίδιο προγραμματιστή του ADO
http://msdn2.Microsoft.com/en-us/library/ms973217.aspx

Κέντρο προγραμματιστών Online .NET MSDN
http://MSDN.Microsoft.com/en-US/netframework/default.aspx

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 314145 - Τελευταία αναθεώρηση: 10/29/2015 03:25:00 - Αναθεώρηση: 3.0

Microsoft ADO.NET 1.1, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition

  • kbhowtomaster kbsqlclient kbsystemdata kbmt KB314145 KbMtel
Σχόλια