Как заполнить datagridview c из sql
Перейти к содержимому

Как заполнить datagridview c из sql

  • автор:

Как загрузить данные из MS SQL Server в DataGridView?

alt text

На компьютере установлен сервер баз данных MS SQL Server. В базе «COKO» лежит таблица «Школы». Помогите начинающему отобразить данную таблицу у себя в DataGridView. Подключение к серверу в VS я «вроде» сделал:

Отслеживать

задан 11 июл 2014 в 11:31

Adam Shakhabov Adam Shakhabov

3,847 8 8 золотых знаков 34 34 серебряных знака 88 88 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вам нужно сделать binding DataGridView c этой таблицей.

Что-то вроде этого:

DataGridView dgv = что_то; string connectionString = ". "; string sqlQuery = "требуемый SQL-запрос"; SqlConnection connection = new SqlConnection(connectionString); SqlDataAdapter da = new SqlDataAdapter(sqlQuery, connection); DataSet ds = new DataSet(); connection.Open(); da.Fill(ds, "имя_вашей_таблицы"); connection.Close(); dgv.DataSource = ds; dataGridView1.DataMember = "имя_вашей_таблицы"; 

Пошаговое руководство. Отображение данных из базы данных SQL Server в элементе управления DataGrid

В этом пошаговом руководстве выполняется получение данных из базы данных SQL Server и их отображение в элементе управления DataGrid. С помощью ADO.NET Entity Framework можно создавать классы сущностей, представляющих данные, и использовать LINQ для записи запроса, который выполняет получение указанных данных из класса сущности.

Необходимые компоненты

Для выполнения этого пошагового руководства требуются следующие компоненты:

  • Visual Studio.
  • Доступ к запущенному экземпляру SQL Server или SQL Server Express с подключенной учебной базой данных AdventureWorks. Базу данных AdventureWorks можно загрузить из GitHub.

Создание новых классов сущностей

  1. Создайте проект приложения WPF на Visual Basic или C# с именем DataGridSQLExample .
  2. В обозревателе решений щелкните проект правой кнопкой мыши, выберите сначала Добавить, а затем Новый элемент. Откроется диалоговое окно Добавление нового элемента.
  3. В области «Установленные шаблоны» выберите Данные и в списке шаблонов выберите ADO.NET EDM (модель данных с использованием сущностей). ADO.NET Entity Data Model item template
  4. Назовите файл AdventureWorksModel.edmx , а затем щелкните Добавить. Появится мастер модели EDM.
  5. На экране «Выбор содержимого модели» выберите Конструктор EF из базы данных, а затем нажмите кнопку Далее.
  6. На экране «Выбор подключения к данным» укажите подключение к базе данных AdventureWorksLT2008. Дополнительные сведения см. в статье Диалоговое окно «Выбор подключения к данным». Проверьте, чтобы имя было AdventureWorksLT2008Entities и чтобы был установлен флажок у параметра Сохранить параметры соединения сущности в App.Config как:, после чего нажмите Далее.
  7. На экране «Выбор объектов базы данных» разверните узел «Таблицы» и выберите таблицы Product и ProductCategory. Вы можете создавать классы сущностей для всех таблиц; однако в этом примере данные извлекаются только из этих двух таблиц. Select Product and ProductCategory from tables
  8. Нажмите кнопку Готово. Сущности Product и ProductCategory отображаются в конструкторе сущностей. Product and ProductCategory entity models

Получение и представление данных

  1. Откройте файл MainWindow.xaml.
  2. Задайте для свойства Width элемента Window значение 450.
  3. В редакторе XAML добавьте следующий тег DataGrid между тегами и , чтобы добавить элемент DataGrid с именем dataGrid1 .

Window with DataGrid

  • Выберите Window.
  • С помощью меню свойств окна или редактора XAML создайте для элемента Window с именем Window_Loaded обработчик событий для события Loaded. Дополнительные сведения см. в разделе Практическое руководство. Создание простого обработчика событий. Ниже показан код XAML для файла MainWindow.xaml.

    Примечание. Если используется Visual Basic, в первой строке MainWindow.xaml замените x:Class=»DataGridSQLExample.MainWindow» на x:Class=»MainWindow» .

    using System.Data.Entity.Core.Objects; using System.Linq; using System.Windows; namespace DataGridSQLExample < /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window < AdventureWorksLT2008Entities dataEntities = new AdventureWorksLT2008Entities(); public MainWindow() < InitializeComponent(); >private void Window_Loaded(object sender, RoutedEventArgs e) < var query = from product in dataEntities.Products where product.Color == "Red" orderby product.ListPrice select new < product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice >; dataGrid1.ItemsSource = query.ToList(); > > > 
    Imports System.Data.Objects Class MainWindow Dim dataEntities As AdventureWorksLT2008Entities = New AdventureWorksLT2008Entities Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded Dim products As ObjectQuery(Of Product) = dataEntities.Products Dim query = _ From product In products _ Where product.Color = "Red" _ Order By product.ListPrice _ Select product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice dataGrid1.ItemsSource = query.ToList() End Sub End Class 

    DataGrid with data from SQL database

  • Запустите пример. Должен отображаться элемент DataGrid с данными.
  • См. также

    Совместная работа с нами на GitHub

    Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

    Пошаговое руководство. Отображение данных из базы данных SQL Server в элементе управления DataGrid

    В этом пошаговом руководстве выполняется получение данных из базы данных SQL Server и их отображение в элементе управления DataGrid. С помощью ADO.NET Entity Framework можно создавать классы сущностей, представляющих данные, и использовать LINQ для записи запроса, который выполняет получение указанных данных из класса сущности.

    Необходимые компоненты

    Для выполнения этого пошагового руководства требуются следующие компоненты:

    • Visual Studio.
    • Доступ к запущенному экземпляру SQL Server или SQL Server Express с подключенной учебной базой данных AdventureWorks. Базу данных AdventureWorks можно загрузить из GitHub.

    Создание новых классов сущностей

    1. Создайте проект приложения WPF на Visual Basic или C# с именем DataGridSQLExample .
    2. В обозревателе решений щелкните проект правой кнопкой мыши, выберите сначала Добавить, а затем Новый элемент. Откроется диалоговое окно Добавление нового элемента.
    3. В области «Установленные шаблоны» выберите Данные и в списке шаблонов выберите ADO.NET EDM (модель данных с использованием сущностей). ADO.NET Entity Data Model item template
    4. Назовите файл AdventureWorksModel.edmx , а затем щелкните Добавить. Появится мастер модели EDM.
    5. На экране «Выбор содержимого модели» выберите Конструктор EF из базы данных, а затем нажмите кнопку Далее.
    6. На экране «Выбор подключения к данным» укажите подключение к базе данных AdventureWorksLT2008. Дополнительные сведения см. в статье Диалоговое окно «Выбор подключения к данным». Проверьте, чтобы имя было AdventureWorksLT2008Entities и чтобы был установлен флажок у параметра Сохранить параметры соединения сущности в App.Config как:, после чего нажмите Далее.
    7. На экране «Выбор объектов базы данных» разверните узел «Таблицы» и выберите таблицы Product и ProductCategory. Вы можете создавать классы сущностей для всех таблиц; однако в этом примере данные извлекаются только из этих двух таблиц. Select Product and ProductCategory from tables
    8. Нажмите кнопку Готово. Сущности Product и ProductCategory отображаются в конструкторе сущностей. Product and ProductCategory entity models

    Получение и представление данных

    1. Откройте файл MainWindow.xaml.
    2. Задайте для свойства Width элемента Window значение 450.
    3. В редакторе XAML добавьте следующий тег DataGrid между тегами и , чтобы добавить элемент DataGrid с именем dataGrid1 .

    Window with DataGrid

  • Выберите Window.
  • С помощью меню свойств окна или редактора XAML создайте для элемента Window с именем Window_Loaded обработчик событий для события Loaded. Дополнительные сведения см. в разделе Практическое руководство. Создание простого обработчика событий. Ниже показан код XAML для файла MainWindow.xaml.

    Примечание. Если используется Visual Basic, в первой строке MainWindow.xaml замените x:Class=»DataGridSQLExample.MainWindow» на x:Class=»MainWindow» .

    using System.Data.Entity.Core.Objects; using System.Linq; using System.Windows; namespace DataGridSQLExample < /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window < AdventureWorksLT2008Entities dataEntities = new AdventureWorksLT2008Entities(); public MainWindow() < InitializeComponent(); >private void Window_Loaded(object sender, RoutedEventArgs e) < var query = from product in dataEntities.Products where product.Color == "Red" orderby product.ListPrice select new < product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice >; dataGrid1.ItemsSource = query.ToList(); > > > 
    Imports System.Data.Objects Class MainWindow Dim dataEntities As AdventureWorksLT2008Entities = New AdventureWorksLT2008Entities Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded Dim products As ObjectQuery(Of Product) = dataEntities.Products Dim query = _ From product In products _ Where product.Color = "Red" _ Order By product.ListPrice _ Select product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice dataGrid1.ItemsSource = query.ToList() End Sub End Class 

    DataGrid with data from SQL database

  • Запустите пример. Должен отображаться элемент DataGrid с данными.
  • См. также

    Совместная работа с нами на GitHub

    Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

    How to bind a DataGridView to a SQLite Database?

    I’m trying to add a data connection to a datagridview that uses SQLite. I’ve added the reference to SQLite (downloaded the required files) but when I go through the wizard to add a data source, SQLite is not included in the choices — see screenshot below: Change Data Source I’ve looked around for answers to this question but have not been successful in finding any. Here is a screenshot of the database inside my project folder: project folder Is there any way to bind the datagridview to a sqlite data source? Any help would be appreciated. Thanks!

    38.3k 27 27 gold badges 165 165 silver badges 215 215 bronze badges
    asked Oct 17, 2017 at 20:38
    user2101411 user2101411
    1,214 2 2 gold badges 14 14 silver badges 35 35 bronze badges

    3 Answers 3

    1. Go to Tools > Library Package Manager > Manage NuGet Packages for solution.
    2. Choose the Online section and write SQLite inside the textbox located on the upper-right corner. Push ENTER and wait for the search to be performed.
    3. Choose the first package: System.Data.SQLite (x86/x64).
    4. Once the package has been downloaded, select the project in which to install the provider and press OK.

    If the data source still isn’t available after following the above steps don’t work, it may be a problem with the SQLite version — see the comment left by cmc and the linked thread, which says version 1.0.93 works but version 1.0.94 doesn’t.

    answered Oct 20, 2017 at 10:26
    Steve Chambers Steve Chambers
    38.3k 27 27 gold badges 165 165 silver badges 215 215 bronze badges
    unfortunately I can’t seem to get it to work. I’m using version 1.0.105.2 (the latest under nuget)
    Oct 20, 2017 at 17:11
    no, I don’t see it listed under NuGET, just 1.0.105.2
    Oct 20, 2017 at 21:53

    The older version needs to be downloaded manually — see the bottom post in the thread and its links to 32 bit and 64 bit versions of 1.0.93.

    Oct 21, 2017 at 12:20

    downloaded that and installed and added the reference but these steps (geekswithblogs.net/danielggarcia/archive/2013/12/22/…) are not working, as I don’t see the sqlite option for the entity model

    Oct 21, 2017 at 12:49

    Well it seems like the whole thing with SQLite and Visual Studio is a bit of a mess — the current answers to this question don’t exactly inspire confidence but might possibly get you there if you’re prepared to be fix to particular versions and put in some effort. In particular, this answer is the nearest to what’s described above.

    Oct 23, 2017 at 21:42

    1. Go to Tools > Library Package Manager > Manage NuGet Packages for solution.
    2. Choose the Browse section and search for Microsoft.SqlServer.Compact
    3. Install it
    4. Click on View > Other Windows > SQLite/SQL Server Compact Toolbox will be appeared there.
    5. Click on SQLite/SQL Server Compact Toolbox and you can easily manage connection. Screenshots are attached enter image description hereenter image description here.

    answered Oct 26, 2017 at 11:55
    515 8 8 silver badges 21 21 bronze badges
    unfortunately it does not appear (view->other windows->sqlite/sql).
    Oct 26, 2017 at 17:09

    The SQLite/SQL Server Compact Toolbox window comes from this Visual Studio extension marketplace.visualstudio.com/… , probably not from the NuGet packages

    Nov 1, 2023 at 9:37

    System.Data.SQLite ‘s website now says that its «design-time components» (which I believe power this «Data Source» feature in the Visual Studio UI) are now no longer «officially supported», and don’t work in Visual Studio 2017 and later anyway «due to changes in the Visual Studio package installation model»: https://system.data.sqlite.org/index.html/doc/trunk/www/news.wiki .

    There is a separate 3rd-party «SQLite and SQL Server Compact Toolbox» Visual Studio Extension which provides a database explorer UI window and an SQLite Data Source, but I was unable to get the latter to work myself (in VS2019).

    In the end I just did the binding myself somewhat manually in code. The SQLite* classes in System.Data.SQLite snap in to the same kinds of .DataSource stuff shown in this standard Winforms DataGridView binding tutorial: https://learn.microsoft.com/en-us/dotnet/desktop/winforms/controls/how-to-bind-data-to-the-windows-forms-datagridview-control?view=netframeworkdesktop-4.8

    using System.Data.SQLite; var dbConn = new SQLiteConnection("Data Source=" + pathToDbFile); var dataAdapter = new SQLiteDataAdapter( "SELECT * from [Table1]", dbConn ); // These can be constructed manually or created in the Designer DataGridView dataGridView1; BindingSource bindingSource1; // This binding can be done manually in constructor/on Load event, or also done via properties in the Designer dataGridView1.DataSource = bindingSource1; // Now, on form load or other event, the .Fill method of SQLiteDataAdapter // can be used just like the System.Data.SqlClient.SqlDataAdapter class // in the tutorial < // 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); > 

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *