Wpf как вывести таблицу

Отобразить в приложении WPF уже существующую таблицу из БД MS SQL Server

Задача: отобразить в приложении WPF уже существующую таблицу из БД MS SQL Server.
В WinForms это решалось при помощи DataGriedView, OleDbConnection, OleDbAdapter.

Но когда я добавляю в список элементов OleDbConnection, OleDbAdapter мне вылетает вот такое сообщение:

Следующие элементы управления были добавлены на панель элеменов, но не включены в активном конструкторе:

Проверьте что добавляемые элементы управления совместимы с текущей версией проекта и .NET Framework

Eсли я верно понял то в WPF нужно юзать что то другое. В общем спасите пжлст)

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вставка строки в уже существующую таблицу в Word
Добрый день. Ломаю голову над казалось бы элементарной задачей. В документе Word существует.

Вывод данных из DBrida в уже существующую таблицу Excel
Здравствуйте, подскажите(хотя понимаю в Инете куча инфы, только я ничего подходящего не нашел. ).

Подключение бд sql server в консольном приложении c#
Здравствуйте, возникла проблема с подключением к бд. Бд является локальной, создана в visual.

DataGridView имеет WPF-овский аналог — DataGrid.

Но вот OleDbConnection, OleDbDataAdapter и DataSet — чисто винформовские элементы, и их нельзя размещать на формах WPF.

Есть способ через WindowsFormsHost, но возможности кидать элементы на форму не даёт и он, приходится вписывать их вручную в XAML-код, а это неудобно.

Видимо, Вам придётся поступить так: DataGrid разместить на форме, а всё остальное — написать в коде программной части руками.
Вот пример для БД Access (подключите пространства имён System.Data и System.Data.OleDb)

Водяной Змей, что то не получается, не подскажете где я накосячил?

Вложения

wtf.zip (104.2 Кб, 26 просмотров)

Точно не скажу, но 99% проблема была в неверном названии какой то таблицы. Переделал с аксеса на sql server. Все работает)

Добавлено через 1 минуту
Водяной Змей, о, только сейчас увидел ваше сообщение) так тоже пробовал, еще до того как вы написали, не прокатило)

А не поделитесь секретом, как Вы научились работать с SQL Server’ом?
Что Вы поставили для этого на комп? (Только поконкретнее, пожалуйста)
Что сделали ещё? (В Management Studio и т.д.)
И какую прописывали строку подключения?

Буду очень благодарен, если ответите.
Сам я его пока не осилил, а он очень популярен на фрилансе, в том числе, на здешнем.

К тому же я собираюсь написать о нём подробную статью на Хабре.
Пусть лучше меня заминусуют «профи», начитавшиеся страуструпов, не умеющие никому ничего объяснить и ещё гордящиеся этим, нежели новичкам придётся мучиться с MSSQL, как пришлось в своё время мне.

Источник

Используем DataGrid в WPF

Не так давно мне потребовалось использовать таблицу в приложении на C#. По наивности я подумал, что буду использовать всё самое свежее и выбрал для проекта WPF вместо WinForm и, конечно, взял самый свежий .net framework 4.5. Тут-то и начались проблемы. Как всегда, я решил, что в Яндексе найдётся всё, но не тут то было — в интернете (вернее в РУнете) вообще ничего о DataGrid нет. Постоянно, как бы хитро не изменял запросы, я попадал на DataGridView из WinForm. Самое интересное в том, что платформа WPF полностью переработана и многое из того, что работало в WinForm в WPF не работает вообще никак.

Интересно также и то, что WPF должен быть как бы легче в использовании, ведь в Microsoft отделили дизайнеров от программистов, добавили векторную систему визуализации, язык XAML и прочее.

После продолжительного негодования я открыл большую и толстую книгу по WPF. И вот, чудо! Там было всё, как изменить размер, переименовать и перекрасить что угодно и как угодно, но о том, как элементарно достать запись из DataGrid не было и слова.

Отчаявшись, я решил было перейти на WinForm, но вспомнив старую добрую пословицу «если программа не работает, то проблема не в коде, а в программисте», решил разобраться в проблеме и (правда не помню на каком сайте) нашёл решение (это был сайт на английском языке в самых чёрных глубинах интернета). Название сайта вспомнил, ссылка в конце документа.

Привожу пример, как положить и достать информацию из DataGrid в WPF:

Для начала создадим новое приложение и в главном окне разместим элемент DataGrid, назовём его grid.
Далее создадим класс, который будет хранить информацию для таблицы:

После этого заполним таблицу с помощью события Loaded:

После всего получим информацию о строчке по событию MouseUp (клик мышкой):

Заключение

Обратите внимание, что обращаться к элементам таблицы в WPF действительно легче, чем в WinForm (напомню, что в WinForm нужно обязательно указывать номер столбца и ячейки), более того, таблица сохраняет исходный тип данных и это очень удобно при их обработке.

Скриншот того, что получилось:

Для примера использован Visual Studio 2012 и .net 4.0.

Источник

Практическое руководство. Построение таблицы программным способом

В следующих примерах показано, как программным способом создать Table и заполнить его содержимым. Содержимое таблицы делится на пять строк (представленные TableRow объектами, содержащимися в RowGroups объекте) и шесть столбцов (представленных TableColumn объектами). Строки используются для различных целей представления, включая строку названия, предназначенную для заголовка всей таблицы, строку заголовка для описания столбцов данных в таблице и строку нижнего колонтитула для сводной информации. Обратите внимание, что строки «title», «header» и «footer» не встроены в таблицу. Это просто строки с разными характеристиками. Ячейки таблицы содержат фактическое содержимое, которое может состоять из текста, изображений или практически любого другого пользовательский интерфейс элемента.

Пример

FlowDocumentВо-первых, создается для размещения Table , а новый Table создается и добавляется к содержимому FlowDocument .

Пример

Затем создается шесть TableColumn объектов и добавляется в Columns коллекцию таблицы с применением определенного форматирования.

Обратите внимание, что в Columns коллекции таблицы используется стандартная индексация, начинающаяся с нуля.

Пример

Затем создается строка заголовка и добавляется в таблицу с определенным форматированием. Строка названия содержит одну ячейку, охватывающую все шесть столбцов таблицы.

Пример

Далее создается и добавляется в таблицу строка заголовка, а ячейки в строке заголовка создаются и заполняются содержимым.

Пример

Затем создается и добавляется в таблицу ряд данных, а ячейки в этой строке создаются и заполняются содержимым. Построение этой строки аналогично построению строки заголовка с применением немного другого форматирования.

Пример

Наконец, создается, добавляется и форматируется строка нижнего колонтитула. Как и строка названия, нижний колонтитул содержит одну ячейку, которая включает все шесть столбцов в таблице.

Источник

Общие сведения о таблицах

Table— это элемент уровня блока, поддерживающий представление Flow документа на основе сетки. Гибкость этого элемента делает его очень полезным, но также и более сложным для понимания и правильного использования.

В этом разделе содержатся следующие подразделы.

Основные сведения о таблицах

Отличие таблицы от сетки

Table и Grid обладают некоторыми общими функциями, но они лучше всего подходят для различных сценариев. Tableкомпонент предназначен для использования в содержимом нефиксированного формата (дополнительные сведения о содержимом нефиксированного формата см. в Flow документе ). Сетки лучше всего использовать внутри форм (по сути, в любом месте вне потокового содержимого). В среде FlowDocument Table поддерживает поведение нефиксированного содержимого, например разбивку на страницы, перекомпоновку столбцов и выбор содержимого, а не в Grid . А с Grid другой стороны лучше использовать за пределами, FlowDocument по многим причинам Grid , включая добавление элементов на основе индекса строк и столбцов Table . GridЭлемент разрешает разслойировать дочернее содержимое, допуская наличие в одной «ячейке» более одного элемента. Table не поддерживает разслойное размещение. Дочерние элементы объекта Grid могут быть абсолютно расположены относительно области их границ «ячейка». Table не поддерживает эту функцию. Наконец, Grid требуется меньше ресурсов, а затем Table рекомендуется использовать Grid для повышения производительности.

Основная структура таблицы

Table предоставляет представление на основе сетки, состоящее из столбцов (представленных TableColumn элементами) и строк (представленных TableRow элементами). TableColumn элементы не размещают содержимое; они просто определяют столбцы и характеристики столбцов. TableRow элементы должны размещаться в TableRowGroup элементе, который определяет группирование строк для таблицы. TableCell элементы, которые содержат реальное содержимое, которое должно быть представлено таблицей, должны размещаться в TableRow элементе. TableCell может содержать только элементы, производные от Block . Допустимые дочерние элементы для TableCell include.

TableCell элементы не могут напрямую размещать текстовое содержимое. дополнительные сведения о правилах включения для элементов растягиваемого содержимого, таких как TableCell , см. в разделе Flow документ общие сведения.

Table функция похожа на Grid элемент, но имеет больше возможностей и, следовательно, требует большего объема ресурсов.

В следующем примере определяется простая таблица 2 x 3 с XAML.

На следующем рисунке показано, как этот пример отрисовывается.

Вложения таблицы

Table является производным от Block элемента и соответствует общим правилам для Block элементов уровня. TableЭлемент может содержаться в любом из следующих элементов:

Источник

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

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

Предварительные требования

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

доступ к выполняющемуся экземпляру SQL Server или SQL Server Express, к которому присоединен образец базы данных AdventureWorks. Базу данных AdventureWorks можно загрузить из GitHub.

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

создайте новый проект приложения WPF в Visual Basic или C# и присвойте ему имя DataGridSQLExample .

В обозреватель решений щелкните правой кнопкой мыши проект, наведите указатель на пункт Добавить и выберите пункт создать элемент.

Откроется диалоговое окно Добавить новый элемент.

в области установленные шаблоны выберите данные и в списке шаблонов выберите ADO.NET EDM.

Присвойте файлу имя AdventureWorksModel.edmx и нажмите кнопку Добавить.

Появится мастер модели EDM.

На экране Выбор содержимого модели выберите конструктор EF из базы данных , а затем нажмите кнопку Далее.

На экране Выбор подключения к данным укажите подключение к базе данных AdventureWorksLT2008. Дополнительные сведения см. в разделе диалоговое окно «Выбор подключения к данным».

Убедитесь, что имя имеет значение, AdventureWorksLT2008Entities а флажок сохранить параметры подключения сущности в App.Config как установлен, а затем нажмите кнопку Далее.

На экране Выбор объектов базы данных разверните узел таблицы и выберите таблицы Product и ProductCategory .

Можно создавать классы сущностей для всех таблиц. Однако в этом примере данные извлекаются только из этих двух таблиц.

Нажмите кнопку Готово.

Сущности Product и ProductCategory отображаются в Entity Designer.

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

Откройте файл MainWindow. XAML.

Установите свойство в значение Width Window 450.

В редакторе XAML добавьте следующий DataGrid тег между тегами и, чтобы добавить DataGrid именованный объект dataGrid1 .

С помощью окно свойств или редактора XAML Создайте обработчик событий для Window именованного Window_Loaded Loaded события. Дополнительные сведения см. в разделе инструкции. Создание простого обработчика событий.

Ниже показан XAML для MainWindow. XAML.

при использовании Visual Basic в первой строке файла MainWindow. xaml замените на x:Class=»DataGridSQLExample.MainWindow» x:Class=»MainWindow» .

Откройте файл кода программной части (MainWindow. XAML. vb или MainWindow. XAML. cs) для Window .

Добавьте следующий код, чтобы получить только определенные значения из соединяемых таблиц и задать ItemsSource для свойства объекта DataGrid результаты запроса.

Вы увидите DataGrid , что отображает данные.

Источник

Читайте также:  Как правильно стирать перья
Оцените статью