Страница 1 из 1

Вывод данных из MySQL в dataGridView1 C#

Добавлено: 23 авг 2018, 12:04
ZelTrad
При нажатии на button1 идет сохранение, при нажатии на button2 должны данные подтянуться и они не отображаются хотя подключение есть. Сомневаюсь, что ошибка в коде так как множество разных рабочих кодов пробовал, ни один не тянет данные.
Вот код С# windows form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace BD2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void insertData()
        {
            string conStr = "server=127.0.0.1;user=mysql;" + "database=Test;password=mysql;sslMode=none;";
            using (MySqlConnection con = new MySqlConnection(conStr))
            {
                try
                {
                    string sql = "INSERT INTO friends (name, lastname, age)" +
                    "VALUES ('Misha', 'Ivanov', 26)";
                    MySqlCommand cmd = new MySqlCommand(sql, con);
                    con.Open();
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Данные добавлены!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            insertData();
        }

        private DataTable GetComments()
        {
            DataTable dt = new DataTable();
            MySqlConnectionStringBuilder mysqlCSB;
            mysqlCSB = new MySqlConnectionStringBuilder();
            mysqlCSB.Server = "127.0.0.1";
            mysqlCSB.Database = "Test";
            mysqlCSB.UserID = "mysql";
            mysqlCSB.Password = "mysql";
            mysqlCSB.SslMode = MySqlSslMode.None;
            string queryString = @"SELECT id, name, lastname, age FROM   friends WHERE  name >= CURDATE()";
            using (MySqlConnection con = new MySqlConnection())
            {
                con.ConnectionString = mysqlCSB.ConnectionString;
                MySqlCommand com = new MySqlCommand(queryString, con);
                try
                {
                    con.Open();
                    using (MySqlDataReader dr = com.ExecuteReader())
                    {
                        if (dr.HasRows)
                        {
                            dt.Load(dr);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            return dt;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = GetComments();
        }
    }
}

Re: Вывод данных из MySQL в dataGridView1 C#

Добавлено: 23 авг 2018, 13:09
Ink0gnit0
Уберите из команды выборки " WHERE name >= CURDATE()", перекомпилируйте и запустите вновь.

Re: Вывод данных из MySQL в dataGridView1 C#

Добавлено: 23 авг 2018, 13:22
ZelTrad
Спасибо за оперативность =) Все заработало.
Другие коды тоже заработали только там нужно было поставить загрузку формы в самих настройка.

Re: Вывод данных из MySQL в dataGridView1 C#

Добавлено: 23 авг 2018, 13:29
ZelTrad
Может кому пригодится, почему не работал другой код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace BD3
{
    public partial class Form1 : Form
    {
        MySqlConnection conn = new MySqlConnection("server=127.0.0.1;userid=mysql;password=mysql;database=Test;sslMode=none");
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                conn.Open();
                MySqlDataAdapter SDA = new MySqlDataAdapter("SELECT * FROM friends", conn);
                DataTable DATA = new DataTable();
                SDA.Fill(DATA);
                dgw.DataSource = DATA;
                conn.Close();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }

        private void dgw_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

Необходимо было выбрать Form1_Load


Изображение