Dela via


Anvisningar: Flytta genom en datauppsättning med Windows Forms BindingNavigator-kontrollen

När du skapar datadrivna program måste du ofta visa samlingar med data för användarna. Den BindingNavigator kontrollen, tillsammans med komponenten BindingSource, ger en praktisk och utökningsbar lösning för att flytta genom en samling och visa objekt sekventiellt.

Exempel

Följande kodexempel visar hur du använder en BindingNavigator kontroll för att gå igenom data. Uppsättningen finns i en DataView, som är bunden till en TextBox kontroll med en BindingSource komponent.

Not

Lagring av känslig information, till exempel ett lösenord, i anslutningssträngen kan påverka programmets säkerhet. Att använda Windows-autentisering (även kallat integrerad säkerhet) är ett säkrare sätt att styra åtkomsten till en databas. Mer information finns i Skydda anslutningsinformation.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Data.SqlClient;
using System.Windows.Forms;

// This form demonstrates using a BindingNavigator to display
// rows from a database query sequentially.
public class Form1 : Form
{
    // This is the BindingNavigator that allows the user
    // to navigate through the rows in a DataSet.
    BindingNavigator customersBindingNavigator = new BindingNavigator(true);

    // This is the BindingSource that provides data for
    // the Textbox control.
    BindingSource customersBindingSource = new BindingSource();

    // This is the TextBox control that displays the CompanyName
    // field from the DataSet.
    TextBox companyNameTextBox = new TextBox();

    public Form1()
    {
        // Set up the BindingSource component.
        this.customersBindingNavigator.BindingSource = this.customersBindingSource;
        this.customersBindingNavigator.Dock = DockStyle.Top;
        this.Controls.Add(this.customersBindingNavigator);

        // Set up the TextBox control for displaying company names.
        this.companyNameTextBox.Dock = DockStyle.Bottom;
        this.Controls.Add(this.companyNameTextBox);

        // Set up the form.
        this.Size = new Size(800, 200);
        this.Load += new EventHandler(Form1_Load);
    }

    void Form1_Load(object sender, EventArgs e)
    {
        // Open a connection to the database.
        // Replace the value of connectString with a valid
        // connection string to a Northwind database accessible
        // to your system.
        string connectString =
            "Integrated Security=SSPI;Persist Security Info=False;" +
            "Initial Catalog=Northwind;Data Source=localhost";

        using (SqlConnection connection = new SqlConnection(connectString))
        {

            SqlDataAdapter dataAdapter1 =
                new SqlDataAdapter(new SqlCommand("Select * From Customers",connection));
            DataSet ds = new DataSet("Northwind Customers");
            ds.Tables.Add("Customers");
            dataAdapter1.Fill(ds.Tables["Customers"]);

            // Assign the DataSet as the DataSource for the BindingSource.
            this.customersBindingSource.DataSource = ds.Tables["Customers"];

            // Bind the CompanyName field to the TextBox control.
            this.companyNameTextBox.DataBindings.Add(
                new Binding("Text",
                this.customersBindingSource,
                "CompanyName",
                true));
        }
    }

    [STAThread]
    public static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Data.SqlClient
Imports System.Windows.Forms


' This form demonstrates using a BindingNavigator to display 
' rows from a database query sequentially.
Public Class Form1
    Inherits Form
    ' This is the BindingNavigator that allows the user
    ' to navigate through the rows in a DataSet.
    Private customersBindingNavigator As New BindingNavigator(True)

    ' This is the BindingSource that provides data for
    ' the Textbox control.
    Private customersBindingSource As New BindingSource()

    ' This is the TextBox control that displays the CompanyName
    ' field from the DataSet.
    Private companyNameTextBox As New TextBox()


    Public Sub New()
        ' Set up the BindingSource component.
        Me.customersBindingNavigator.BindingSource = Me.customersBindingSource
        Me.customersBindingNavigator.Dock = DockStyle.Top
        Me.Controls.Add(Me.customersBindingNavigator)

        ' Set up the TextBox control for displaying company names.
        Me.companyNameTextBox.Dock = DockStyle.Bottom
        Me.Controls.Add(Me.companyNameTextBox)

        ' Set up the form.
        Me.Size = New Size(800, 200)
        AddHandler Me.Load, AddressOf Form1_Load

    End Sub


    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
        ' Open a connection to the database.
        ' Replace the value of connectString with a valid 
        ' connection string to a Northwind database accessible 
        ' to your system.
        Dim connectString As String = _
            "Integrated Security=SSPI;Persist Security Info=False;" & _
            "Initial Catalog=Northwind;Data Source=localhost"

        Dim connection As New SqlConnection(connectString)
        Try

            Dim dataAdapter1 As New SqlDataAdapter( _
                New SqlCommand("Select * From Customers", connection))
            Dim ds As New DataSet("Northwind Customers")
            ds.Tables.Add("Customers")
            dataAdapter1.Fill(ds.Tables("Customers"))

            ' Assign the DataSet as the DataSource for the BindingSource.
            Me.customersBindingSource.DataSource = ds.Tables("Customers")

            ' Bind the CompanyName field to the TextBox control.
            Me.companyNameTextBox.DataBindings.Add(New Binding("Text", _
                Me.customersBindingSource, "CompanyName", True))
        Finally
            connection.Dispose()
        End Try

    End Sub


    <STAThread()> _
    Public Shared Sub Main()
        Application.EnableVisualStyles()
        Application.Run(New Form1())

    End Sub
End Class

Kompilera koden

Det här exemplet kräver:

  • Referenser till sammansättningarna System, System.Data, System.Drawing, System.Windows.Forms och System.Xml.

Se även