Show / Hide Table of Contents

Практическое руководство. Привязка данных к элементу управления Windows Forms DataGridView

DataGridView Элемент управления поддерживает стандартную Windows Forms модель привязки данных, поэтому его можно привязать к различным источникам данных. Как правило, можно выполнить привязку к BindingSource , управляет взаимодействием с источником данных. BindingSource Может быть любой источник данных Windows Forms, который обеспечивает большую гибкость при выборе или изменении расположения ваших данных. Дополнительные сведения об источниках данных DataGridView управления поддерживает, см. в разделе Обзор элемента управления DataGridView.

Visual Studio имеет расширенную поддержку привязки данных к элементу управления DataGridView. Дополнительные сведения см. в разделе Как Привязка данных к элементу управления Windows Forms DataGridView, с помощью конструктора.

Для подключения элемента управления DataGridView к данным:

  1. Реализуйте метод для обработки сведения о получении данных. В следующем коде реализуется пример GetData метод, который инициализирует SqlDataAdapterи использует его для заполнения DataTable. Затем он выполняет привязку DataTable для BindingSource.

  2. В форме Load обработчик событий, привязка DataGridView управления BindingSourceи вызовите GetData метод для извлечения данных.

Пример

Это полный пример кода извлекает данные из базы данных для заполнения элемента управления DataGridView в форме Windows. В форме также находятся кнопки, чтобы перезагрузить данные и отправить изменения в базу данных.

Для этого примера требуются:

  • Доступ на образец базы данных "Борей" SQL Server. Дополнительные сведения об установке образца базы данных "Борей" см. в разделе получить образцы баз данных, примеры кода ADO.NET.

  • Ссылки на сборки System, System.Windows.Forms, System.Data и System.Xml.

Чтобы построить и запустить этот пример, вставьте код в Form1 файл кода в новый проект Windows Forms. Сведения о сборке из C# или командной строки Visual Basic, см. в разделе сборка с помощью csc.exe из командной строки или построения из командной строки.

Заполнение connectionString переменных в примере со значениями пример подключения к базе данных "Борей" SQL Server. Проверка подлинности Windows, также называемый встроенная безопасность является более безопасный способ подключения к базе данных, чем хранение пароля в строке подключения. Дополнительные сведения о безопасности подключения, см. в разделе Защита сведений о подключении.

using System;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.Windows.Forms;

namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}
public class Form1 : Form
{
    private DataGridView dataGridView1 = new DataGridView();
    private BindingSource bindingSource1 = new BindingSource();
    private SqlDataAdapter dataAdapter = new SqlDataAdapter();
    private Button reloadButton = new Button();
    private Button submitButton = new Button();

    [STAThread()]
    public static void Main()
    {
        Application.Run(new Form1());
    }

    // Initialize the form.
    public Form1()
    {
        dataGridView1.Dock = DockStyle.Fill;

        reloadButton.Text = "Reload";
        submitButton.Text = "Submit";
        reloadButton.Click += new EventHandler(ReloadButton_Click);
        submitButton.Click += new EventHandler(SubmitButton_Click);

        FlowLayoutPanel panel = new FlowLayoutPanel
        {
            Dock = DockStyle.Top,
            AutoSize = true
        };
        panel.Controls.AddRange(new Control[] { reloadButton, submitButton });

        Controls.AddRange(new Control[] { dataGridView1, panel });
        Load += new EventHandler(Form1_Load);
        Text = "DataGridView data binding and updating demo";
    }

    private void GetData(string selectCommand)
    {
        try
        {
            // Specify a connection string.  
            // Replace <SQL Server> with the SQL Server for your Northwind sample database.
            // Replace "Integrated Security=True" with user login information if necessary.
            String connectionString =
                "Data Source=<SQL Server>;Initial Catalog=Northwind;" +
                "Integrated Security=True";

            // Create a new data adapter based on the specified query.
            dataAdapter = new SqlDataAdapter(selectCommand, connectionString);

            // Create a command builder to generate SQL update, insert, and
            // delete commands based on selectCommand. 
            SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

            // Populate a new data table and bind it to the BindingSource.
            DataTable table = new DataTable
            {
                Locale = CultureInfo.InvariantCulture
            };
            dataAdapter.Fill(table);
            bindingSource1.DataSource = table;

            // Resize the DataGridView columns to fit the newly loaded content.
            dataGridView1.AutoResizeColumns(
                DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
        }
        catch (SqlException)
        {
            MessageBox.Show("To run this example, replace the value of the " +
                "connectionString variable with a connection string that is " +
                "valid for your system.");
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        // Bind the DataGridView to the BindingSource
        // and load the data from the database.
        dataGridView1.DataSource = bindingSource1;
        GetData("select * from Customers");
    }

    private void ReloadButton_Click(object sender, EventArgs e)
    {
        // Reload the data from the database.
        GetData(dataAdapter.SelectCommand.CommandText);
    }

    private void SubmitButton_Click(object sender, EventArgs e)
    {
        // Update the database with changes.
        dataAdapter.Update((DataTable)bindingSource1.DataSource);
    }
}

См. также

  • DataGridView
  • DataGridView.DataSource
  • BindingSource
  • Отображение данных в элементе управления Windows Forms DataGridView
  • Защита сведений о подключении
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX