Как получить данные из БД-MySql в ObservableCollection?

251
04 июля 2019, 20:40

Задача: получить данные из БД-MySql в ObservableCollection и затем передать в DataGrid.

Код:

    public class Games: INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged([CallerMemberName]string prop = "")
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(prop));
            }
        }
        private string name;
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                OnPropertyChanged();
            }
        }
        private string price;
        public string Price
        {
            get { return price; }
            set
            {
                price = value;
                OnPropertyChanged();
            }
        }
    }
public class SearchGames
{
    private ObservableCollection<Games> _gamesCollection;
    public ObservableCollection<Games> GamesCollection
    {
        get { return _gamesCollection; }
        set { _gamesCollection = value;
                OnPropertyChanged();
            }
        }        
    public void SearchGames()
        {
            string query = "SELECT * FROM GamesTable";
            command = new MySqlCommand(query, connection);
            adapter = new MySqlDataAdapter(command);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            foreach (DataRow row in dt.Rows)
            {
                var game = new Games
                {
                    Name = row["Name"].ToString(),
                    Price= row["Price"].ToString()
                };
                GamesCollection.Add(game);
            }
        }
}
Answer 1

Решение:

    public class Games: INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged([CallerMemberName]string prop = "")
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(prop));
            }
        }
        private string name;
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                OnPropertyChanged();
            }
        }
        private string price;
        public string Price
        {
            get { return price; }
            set
            {
                price = value;
                OnPropertyChanged();
            }
        }
    }
public class SearchGames
{
    private ObservableCollection<Games> _gamesCollection = new ObservableCollection<Games>;
    public ObservableCollection<Games> GamesCollection
    {
        get { return _gamesCollection; }
        set { _gamesCollection = value;
                OnPropertyChanged();
            }
        }        
    public void SearchGames()
        {
            string query = "SELECT * FROM GamesTable";
            command = new MySqlCommand(query, connection);
            adapter = new MySqlDataAdapter(command);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            foreach (DataRow row in dt.Rows)
            {
                var game = new Games
                {
                    Name = row["Name"].ToString(),
                    Price= row["Price"].ToString()
                };
                GamesCollection.Add(game);
            }
        }
}
READ ALSO
отчётность (ReportViewer)

отчётность (ReportViewer)

я создавал уже некоторую отчётность на одном листе(как в этом примере https://docsmicrosoft

131
Бэкенд для мобильного приложения

Бэкенд для мобильного приложения

Появилась необходимость в написании мобильного приложения, поддерживающего чат, что подразумевает под собой частый обмен данными с серверомВ...

141
Цикл по 2 файлам Excel (C# и Epplus)

Цикл по 2 файлам Excel (C# и Epplus)

Подскажите как можно циклом сравнить 2 файла Excel с помощью EpplusУ меня не получается

143
Проблема с Cors в IE: not found in the header Access-Control-Allow-Origin

Проблема с Cors в IE: not found in the header Access-Control-Allow-Origin

При использовании русских доменов получаю ошибку

166