Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 99

Извлечение из MongoDb в dataGrid WPF

23.04.2020, 10:49. Показов 4889. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Есть БД sapml_Training, коллекция Products, в коллекции 2 документа(2 записи).
Форма, на которой есть dataGrid, куда должна выводиться информация из БД(2 документа). Проблема в том, что выводится только последний документ(последняя добавленная запись).
Код для вывода из БД и вывод в dataGrid:
C#
1
2
3
4
5
6
7
8
9
10
11
        private async void Window_Loaded ( object sender, RoutedEventArgs e )
        {
            var database = mongoClient.GetDatabase ( "sapml_Training" );
            var collection = database.GetCollection<BsonDocument> ( "Products" );
            var document = await collection.Find (BsonDocument()).ToListAsync ();
            foreach ( BsonDocument doc in document )
            {
                dataGrid.ItemsSource = doc;
            }
 
        }
Подскажите как мне вывести ВСЕ(оба документа)?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.04.2020, 10:49
Ответы с готовыми решениями:

Извлечение данных из БД без использования элемента DataGrid
Всем доброго времени суток. Пишу веб-приложение с использованием SilverLight 4 (бизнес-приложение). Столкнулся с следующей задачей:...

Извлечение данных из базы Firebird в переменную (WPF)
Подскажите, как извлекать данные из базы данных в переменную

Mongodb, Mongoid как ускорить запись данных в Mongodb
Добрый вечер всем! Мне нужно записать в Mongodb 2.000.000 рядов информации, по очереди, один за одним, перед записью програма проверяет...

28
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
23.04.2020, 15:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от OPELLIEK Посмотреть сообщение
Абсолютно весь код.
А где модель?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
23.04.2020, 15:12
Тут нужно все переделывать )))))
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 99
23.04.2020, 15:19  [ТС]
А где модель?
Какая?

Тут нужно все переделывать )))))
В чем проблема, из-за чего надо все переделывать?
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
23.04.2020, 15:22
Лучший ответ Сообщение было отмечено OPELLIEK как решение

Решение

OPELLIEK, здесь https://www.c-sharpcorner.com/... -gridview/
в конце описана модель. Класс, описывающий таблицу БД.
1
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 99
23.04.2020, 15:39  [ТС]
Ну добавил я такой класс
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace LNS
{
    class Pruducts
    {
        [BsonId]
        public ObjectId Id { get; set; }
        public String Product{ get; set; }
        public String Count { get; set; }
        public String Grade { get; set; }
        public String Sale { get; set; }
 
    }


И собственно ни чего не изменилось.
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
23.04.2020, 15:56
OPELLIEK, есть пример,который работает. Вот вам еще один пример https://www.youtube.com/watch?v=A0pXnDUfAtA
Всё, что от вас требуется-это сделать так, как написано или показано. Если вы этого не делаете - тут уж как повезет. Вам не повезло.
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 99
23.04.2020, 16:14  [ТС]
Все разобрался. СПАСИБО!

P.S.Теперь пойду разбираться с обновлением и удалением. Если что спрошу?)
0
0 / 0 / 0
Регистрация: 22.12.2019
Сообщений: 5
27.04.2020, 12:17
Можешь скинуть полный код пж
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 99
27.04.2020, 13:35  [ТС]
Главная окно
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Grid Margin="0,0,0,-2">
        <TextBox x:Name="txtProduct" HorizontalAlignment="Left" Margin="113,0,0,161" TextWrapping="Wrap" Width="267" AutomationProperties.Name="txtProduct" TabIndex="1" Height="23" VerticalAlignment="Bottom"/>
        <Label x:Name="label" Content="Product" HorizontalAlignment="Left" Margin="10,0,0,161" Width="51" Height="26" VerticalAlignment="Bottom"/>
        <Label x:Name="label_Copy" Content="Count(kg)" HorizontalAlignment="Left" Margin="10,0,0,105" Width="42" Height="26" VerticalAlignment="Bottom"/>
        <TextBox x:Name="txtAllCount" HorizontalAlignment="Left" Margin="113,0,0,105" TextWrapping="Wrap" Width="267" AutomationProperties.Name="txtCount" TabIndex="3" Height="23" VerticalAlignment="Bottom"/>
        <Button x:Name="button" Content="Save" HorizontalAlignment="Left" Margin="113,0,0,17" Width="75" Click="Button_Click" Height="20" VerticalAlignment="Bottom"/>
        <Button x:Name="button_Copy" Content="Clean text" HorizontalAlignment="Left" Margin="10,0,0,17" Width="75" Click="Button_Copy_Click" RenderTransformOrigin="0.443,0.606" Height="20" VerticalAlignment="Bottom"/>
        <DataGrid x:Name="dataGrid" Height="235" Margin="10,0,10,201" VerticalAlignment="Bottom" MouseUp="DataGrid_MouseUp"/>
        <Label x:Name="label_Copy1" Content="Grade" HorizontalAlignment="Left" Margin="10,0,0,133" Width="42" Height="26" VerticalAlignment="Bottom"/>
        <TextBox x:Name="txtGrade" HorizontalAlignment="Left" Margin="113,0,0,133" TextWrapping="Wrap" Width="267" AutomationProperties.Name="txtCount" TabIndex="2" Height="23" VerticalAlignment="Bottom"/>
        <Label x:Name="label_Copy2" Content=" Count to sell(kg)" HorizontalAlignment="Left" Margin="10,0,0,77" Width="103" Height="26" VerticalAlignment="Bottom"/>
        <TextBox x:Name="txtSaleCount" HorizontalAlignment="Left" Margin="113,0,0,77" TextWrapping="Wrap" Width="267" AutomationProperties.Name="txtCount" TabIndex="4" Height="23" VerticalAlignment="Bottom"/>
        <Button x:Name="btnUpdate" Content="Update" HorizontalAlignment="Left" Margin="206,0,0,17" Width="75" Click="BtnUpdate_Click" Height="20" VerticalAlignment="Bottom" RenderTransformOrigin="2.507,0.475"/>
        <Button x:Name="delet" Content="Delete" HorizontalAlignment="Left" Margin="305,0,0,17" Width="75" Click="Delet_Click" Height="20" VerticalAlignment="Bottom"/>
        <TextBox x:Name="txtSaleCount_Copy" HorizontalAlignment="Left" Margin="113,0,0,49" TextWrapping="Wrap" Width="267" AutomationProperties.Name="txtCount" TabIndex="4" Height="23" VerticalAlignment="Bottom"/>
        <Button x:Name="btnTrade" Content="Traide" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75" Click="BtnTrade_Click"/>
        <Button x:Name="btnMeat" Content="Meat" HorizontalAlignment="Left" Margin="90,10,0,0" VerticalAlignment="Top" Width="75" Click="BtnMeat_Click"/>
        <Label x:Name="label_Copy3" Content="ID" HorizontalAlignment="Left" Margin="10,0,0,51" Width="103" Height="26" VerticalAlignment="Bottom"/>
    </Grid>

Само окно
Кликните здесь для просмотра всего текста


Код для главной формы
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Shared;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
namespace LNS
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow ()
        {
            InitializeComponent ();
        }
 
        MongoClient mongoClient = new MongoClient ( "mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=false" );
 
        private void Button_Copy_Click ( object sender, RoutedEventArgs e )
        {
            txtProduct.Text = "";
            txtAllCount.Text = "";
            txtGrade.Text = "";
            txtSaleCount.Text = "";
            txtSaleCount_Copy.Text = "";
        }
 
        private async void Button_Click ( object sender, RoutedEventArgs e )
        {
            var database = mongoClient.GetDatabase ( "sapml_Training" );
            var collection = database.GetCollection<BsonDocument> ( "Products" );
            var document = new BsonDocument
            {
                {"Product", txtProduct.Text },
                {"Grade", txtGrade.Text },
                {"All_Count", Convert.ToInt16(txtAllCount.Text)},
                {"Sale", Convert.ToInt16(txtSaleCount.Text) }
            };
            await collection.InsertOneAsync ( document );
            MessageBox.Show ( "Added!" );
 
            txtProduct.Text = "";
            txtAllCount.Text = "";
            txtGrade.Text = "";
            txtSaleCount.Text = "";
 
            var collectionRefresh = database.GetCollection<Pruducts> ( "Products" );
            var documentRefresh = await collectionRefresh.Find ( new BsonDocument () ).ToListAsync ();
            dataGrid.DataContext = documentRefresh;
            dataGrid.ItemsSource = documentRefresh;
        }
 
        private async void Window_Loaded ( object sender, RoutedEventArgs e )
        {
            var database = mongoClient.GetDatabase ( "sapml_Training" );
            var collection = database.GetCollection<Pruducts> ( "Products" );
            var document = await collection.Find (new BsonDocument () ).ToListAsync ();
 
            dataGrid.DataContext = document; 
            dataGrid.ItemsSource = document; 
        }
 
        private async void BtnUpdate_Click ( object sender, RoutedEventArgs e )
        {
            //Pruducts pruducts = new Pruducts ();
            string strId = Convert.ToString ( dataGrid.SelectedItem );
 
            var database = mongoClient.GetDatabase ( "sapml_Training" );
            var collection = database.GetCollection<Pruducts> ( "Products" ); 
            var updateDef = Builders<Pruducts>.Update.Set ( "Product", txtProduct.Text).Set("Grade", txtGrade.Text).Set("All_Count", txtAllCount.Text).Set("Sale", txtSaleCount.Text);
 
 
            collection.UpdateOne ( product => product.Id == ObjectId.Parse(txtSaleCount_Copy.Text), updateDef );
            MessageBox.Show ( "OK" );
 
            var document = await collection.Find ( new BsonDocument () ).ToListAsync ();
 
            dataGrid.DataContext = document;
            dataGrid.ItemsSource = document;
 
        }
 
        private async void Delet_Click ( object sender, RoutedEventArgs e )
        {
            string strId = Convert.ToString ( dataGrid.SelectedItem );
 
            var database = mongoClient.GetDatabase ( "sapml_Training" );
            var collection = database.GetCollection<Pruducts> ( "Products" );
            collection.DeleteOne ( product => product.Id == ObjectId.Parse ( txtSaleCount_Copy.Text ));
 
 
            var document = await collection.Find ( new BsonDocument () ).ToListAsync ();
 
            dataGrid.DataContext = document;
            dataGrid.ItemsSource = document;
        }
 
        private void DataGrid_MouseUp ( object sender, MouseButtonEventArgs e )
        {
            Pruducts product = ( Pruducts )dataGrid.SelectedItem;
            txtProduct.Text = product.Product.ToString ();
            txtGrade.Text = product.Grade.ToString ();
            txtAllCount.Text = product.All_Count.ToString ();
            txtSaleCount.Text = product.Sale.ToString ();
            txtSaleCount_Copy.Text = product.Id.ToString();
        }
 
        private void BtnMeat_Click ( object sender, RoutedEventArgs e )
        {
            Meat.Meat meat = new Meat.Meat ();
            meat.Show ();
        }
 
        private void BtnTrade_Click ( object sender, RoutedEventArgs e )
        {
            Traide traide = new Traide ();
            traide.Show ();
        }
    }
}


Доп. класс для главной формы, из-за которого у меня и были проблемы.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace LNS
{
    class Pruducts
    {
        [BsonId]
 
        public ObjectId Id { get; set; }
        public BsonValue Product { get; set; }
        public BsonValue All_Count { get; set; }
        public BsonValue Grade { get; set; }
        public BsonValue Sale { get; set; }
 
        public Pruducts ( BsonValue product, BsonValue all_Count, BsonValue grade, BsonValue sale )
        {
            Product = product;
            All_Count = all_Count;
            Grade = grade;
            Sale = sale;
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2020, 13:35

DataGrid WPF
Привет ребята! кто-нибудь подскажите как получить доступ к отдельной ячейке в DataGrid(е). Благодарю!

DataGrid в WPF
У меня восьмая студия, framework 4, но в студии нет datagrid, как его установить? ps не предлагать установить другую студию))

DataGrid в WPF C#
У меня есть вот такая DataGrid,и есть переменные которым заполнять ее,как мне реализовать заполнение из программы,и какую привязку ресурсов...

DataGrid в WPF
Здравствуйте, возник ряд вопросов связанный с DataGrid в WPF, а именно: 1. Как создать таблицу с двумя столбцами: Text, Combobox. 2....

WPF, работа с DataGrid
Есть приложение WPF. Нужно ввести некоторые параметры в таблицу. 1) Как настроить DataGrid так, чтобы отображалась пустая таблица...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru