Procedure: Maken en gebruiken van getypte DataSet met behulp van Visual C#.NET

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 320714 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel wordt het maken en gebruiken een getypteDataSetin een kleine webtoepassing. GetyptDataSets, die worden overgenomen van deDataSetklasse, het maken van eersteklas leden van eenDataSetvanDataTablesenDataColumns, wat het veel voordelen bij het gebruik van sterke typen.

Vereisten

De volgende items beschrijven de aanbevolen hardware, software, netwerkinfrastructuur, vaardigheden en kennis en servicepacks hebt om deze stappen:
  • Microsoft SQL Server 6.5 (of hoger) met de database Noordenwind
Voorafgaande vereiste vaardigheden:
  • Algemene bekendheid met Microsoft SQL Server
  • Algemene bekendheid met Microsoft Visual Studio.NET
  • Algemene bekendheid met Microsoft ADO.NET
  • Algemene bekendheid met Microsoft.NET Web Controls

Getypte DataSets

Deze stappen kleine webtoepassing maken met behulp van Visual Studio.NET. De webtoepassing gebruikt een getypteDataSetde resultaten van een SQL-query geïmproviseerde weergeven in de database Noordenwind.
  1. Start Visual Studio.NET.
  2. Maak een nieuwe webtoepassing project met de naamTDSin Visual C#.NET.
  3. Controleer of de Solution Explorer wordt weergegeven. Als de Solution Explorer niet wordt weergegeven, drukt u op CTRL + ALT + L.
  4. Controleer of het bestand WebForm1.aspx is geopend in het venster Editor. Als het bestand geopend is, dubbelklikt u opWebForm1.aspxin de Solution Explorer het bestand te openen.
  5. Klik onder het venster EditorOntwerpoverschakelen naar de ontwerpweergave.
  6. De werkset openen, drukt u op CTRL + ALT + X. Klik in de werksetWebformulieren. Selecteer en sleep de volgende naar de linkerbovenhoek van de pagina: twee rijen van een label gevolgd door een tekstvak (rechts van elke label geplaatst). Voeg toe onder deze, eenDataGridop dezelfde manier.
  7. Klik op de bovenste label. Druk op F4 om het venster Eigenschappen weer te geven. Wijziging deText, eigenschapnaarProduct. Klik op de label en wijzig deText, eigenschapnaarCategorie.
  8. Een nieuw toevoegenDataSetDruk op CTRL + SHIFT + A om het project en klik vervolgens opDataSetin de lijst met sjablonen. Naam van deDataSethet volgende:dsProducts.xsd. Opmerking het bestand is eigenlijk een XML-Schema. Klik opOK. U ziet nu een lichtgele gele pagina in het venster Editor.
  9. Een getypte makenDataSet, druk op CTRL + ALT + S Server Explorer geopend.
  10. Klik opServers, klik opcomputernaam, klik opSQLServers, klik opservernaam, klik opNoordenwind, en klik vervolgens opWeergaven.
  11. Selecteer de weergave Northwind SQL ServerAlfabetische lijst van producten, en sleep de weergave naar de LichtgeelDataSetpagina. Een visuele weergave van de resultaten die wordt gegenereerd door de weergave verschijnt op de pagina. Zie de werkelijke XML Schema-bestand, klik op deXMLknop onder de Editor-venster.
  12. Een Schema nu gebaseerd op een SQL Server-object bestaat. Maken en vul een getypteDataSeteerst moet u de klasse die is toegewezen aan het Schema genereren. Klik met de rechtermuisknop in de ontwerpweergave en zorg ervoor dat deDataSet genererenoptie is geselecteerd. Als het niet is geselecteerd, selecteren. Druk op CTRL + S om het Schema opslaan en genereren van de klasse.
  13. De nieuwe weergeven getyptDataSetklasse, klikt u opAlle bestanden weergevenin de Solution Explorer.
  14. Vouw de structuur naastdsProducts.xsd. U ziet een bestand dsProducts.vb de nieuwe toewijzing klasse schema bevat. U ziet ook een dsProducts.xsx-bestand wordt gebruikt voor het bijhouden van wijzigingen in de bestanden.
  15. De getypte weergegeven code schrijvenDataSet, dubbelklik op rechtstreeks op het formulier (niet op een Web-Control). Codebehind het webformulier weergegeven en wordt de invoegpositie binnen dePage_Loadde gebeurtenis.
  16. De klassen in de System.Data.SqlClient-naamruimte bevat, de volgende toevoegenmetinstructie boven de codebehind
    using System.Data.SqlClient;
    					
    OPMERKING: De andere naamruimten voor dit kleine webtoepassing worden in het project automatisch verwezen wanneer u een webtoepassing in Visual Studio maken.NET.

  17. In dePage_Loadgebeurtenisprocedure een Connection-object maken door de verbindingsreeks doorgeven aan de standaardconstructor van deSqlConnectionklasse:
    SqlConnection cn = new SqlConnection("server=myserver;uid=myuid;pwd=mypassword;database=northwind");
    					
  18. Maak een SqlCommand-object vervolgens aan het object SqlCeDataAdapter doorgegeven wordt. Geïmproviseerde SQL-instructie en het nieuwe verbindingsobject doorgeven aan de constructor SqlCommand. De voormalige stelt deCommandTexteigenschap van het nieuwe SqlCommand-object. U kunt ook de naam van een opgeslagen procedure doorgeven.
    SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
    					
  19. Maak een exemplaar van het object SqlCeDataAdapter, nieuwe SqlCommand-object doorgegeven aan de constructor:
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    					
  20. Maak nu de objecten die nodig zijn om verbinding met de database en gegevens. Dit is de code voor de getypteDataSet. Merk op dat een instantie van dedsProductsklasse gemaakt: de klasse toegewezen dsProducts Schema overneemt van deDataSetklasse niet in de algemeneDataSetde klasse zelf.
    dsProducts tds = new dsProducts();
    					
  21. Bel deOpvullingmethode van de SqlCeDataAdapter doorgeven in de getypteDataSetobject en deDataSetde opgegevenDataTable tabelnaameigenschap:
    da.Fill(tds, tds.Tables[0].TableName);
    					
  22. Instellen van deTeksteigenschap van de besturingselementen te sterk getypeerde kolommen in de getypte tekstDataSetvanDataTable, gebruik de volgende notatie:
    dsProducts.DataTableName[RowIndex].ColumnName
    						
    Voor deze voorbeeldtoepassing is de RowIndex hardcoded 5:
    TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
    TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 
    						
    Omdat deRijencollectie is nul, wanneer de pagina wordt geladen, waarmee het tekstvak Opmerking de product- en namen van het item in de zesde rij van weergeven deDataGrid.
  23. Weergeven van alle resultaten in deDataGrid, stelt deDataSourceeigenschap van de nieuwe DataGrid getyptDataSet, enDataBind():
    DataGrid1.DataSource = tds;
    DataGrid1.DataBind();
    					

Code (WebForm1.aspx) aanbieding voltooien

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TDS.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
	<title>WebForm1</title>
	<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
	<meta name="CODE_LANGUAGE" Content="C#">
	<meta name="vs_defaultClientScript" content="JavaScript">
	<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
	<form id="Form1" method="post" runat="server">
		<asp:Label id="Label1"  runat="server" >Label</asp:Label>
		<asp:DataGrid id="DataGrid1"  runat="server" ></asp:DataGrid>
		<asp:TextBox id="TextBox2"  runat="server"></asp:TextBox>
		<asp:TextBox id="TextBox1"  runat="server"></asp:TextBox>
		<asp:Label id="Label2"  runat="server" >Label</asp:Label>
	</form>
</body>
</HTML>
				

Voltooien codegedeelte (WebForm1.aspx.cs)

using System.Data.SqlClient;

namespace TDS
{
  /// <summary>
  /// Summary description for WebForm1.
  /// </summary>
  public class WebForm1 : System.Web.UI.Page
  {
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.TextBox TextBox2;
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
	
    private void Page_Load(object sender, System.EventArgs e) 
    {
	SqlConnection cn = new SqlConnection("server=localhost;uid=sa;pwd=abcd;database=northwind");
	SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
	SqlDataAdapter da = new SqlDataAdapter(cmd);
	dsProducts tds = new dsProducts();

	da.Fill(tds, tds.Tables[0].TableName);
	TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
	TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 

         DataGrid1.DataSource = tds;
	DataGrid1.DataBind();

    }

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
	// 
	// CODEGEN: This call is required by the ASP.NET Web Form Designer.
	// 
	InitializeComponent();
	base.OnInit(e);
    }
		
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
	this.TextBox1.TextChanged += new System.EventHandler(this.TextBox1_TextChanged);
	this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion
  }
}

				

Verificatie

Druk op F5 om de webtoepassing uitvoeren. "Roberts biologische gedroogde peren" in de browser wordt weergegeven in deProducttekstvak en 'Vlees' in deCategorietekstvak. Een DataGrid gevuld met productinformatie weergegeven onder de tekstvakken.

Problemen oplossen

  • AlgemeenDataSetsu doorgeven niet vereisen eenTabelnaamWanneer u belt deOpvullingmethode. GetyptDataSets, echter vereist, zelfs als u toegang tot deDataSetvanTabelcollectie indexes in plaats van door deTabelnaam. Indien niet aan de getypteDataSetvanTabelnaamgenereert een foutbericht 'Er is geen rij positie 0' tijdens runtime. Deze eis wordt getyptDataSetsook betekent dat u niet van uw eigen makenTabelnaammaar u moet doorgeven dat wordt verwezen in de getypteDataSetklasse in de voorgaande code wordt geopend.
  • Handmatige wijzigingen die u aanbrengt in het Schema door Visual Studio is gegenereerd.NET als u het databaseobject dat aanvankelijk gebruikt voor het genereren van het Schema en getypt worden overschrevenDataSetklasse en sleep deze opnieuw naar de ontwerpweergave van het Schema. De wijzigingen aan op het niveau van Microsoft SQL Server en genereert een nieuw opgegeven verdientDataSetdan kunt u het resulterende Schema te wijzigen.

Referenties

Voor meer informatie over het werken met een getypteDataSet, Zie de volgende Microsoft-website:
http://msdn2.Microsoft.com/en-us/library/esbykkzb (vs.71) .aspx


Eigenschappen

Artikel ID: 320714 - Laatste beoordeling: woensdag 2 maart 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Trefwoorden: 
kbhowtomaster kbmt KB320714 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:320714

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com