forte74 Ответов: 1

Как использовать datagridview для отображения значений из базы данных


Я следую учебнику по Как подключиться к MySQL с помощью C#[^]


По какой-то причине я получаю это имя
dataGridView1 does not exists in the current context at the line 


dataGridView1.DataSource = ds.Tables[0].DefaultView;


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 connect4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            //string MyConnectionString = "server=localhost;database=testdb;uid=root;pwd=;" ; 
        }

        private void button1_Click(object sender, EventArgs e)

        {

            string MyConnectionString = "server=localhost;database=testdb;uid=root;pwd=;" ; 

            //int MobileNo;
            //string Mobile = Mobile.Text;

            //int.TryParse(Mobile, out MobileNo);

            MySqlConnection con = new MySqlConnection(MyConnectionString);

            MySqlCommand cmd;

            con.Open();

            MessageBox.Show("connection open"); 


            try {

                cmd = con.CreateCommand();
                cmd.CommandText = "INSERT INTO  phonebook(Id, Name, MobileNo) VALUES (@ID, @Name,@MobileNo)";

                cmd.Parameters.AddWithValue("@Id", int.Parse(Id.Text));

                cmd.Parameters.AddWithValue("@Name", txtName.Text);

                cmd.Parameters.AddWithValue("@MobileNo", int.Parse(Mobile.Text));

                cmd.ExecuteNonQuery();

                MessageBox.Show("Values inserted"); 

            }

            catch (Exception)
            {

                throw;
                //MessageBox.Show("query failed"); 

            }


            finally
            {

                if (con.State == ConnectionState.Open)

                {
                    con.Close();

                    MessageBox.Show("connection closed");
                    LoadData();
                }
            }

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        
        private void LoadData()
        {

            string MyConnectionString = "server=localhost;database=testdb;uid=root;pwd=;"; 

            MySqlConnection con = new MySqlConnection(MyConnectionString);


            con.Open();

            MessageBox.Show("connection open");

            try
            {
                MySqlCommand cmd = con.CreateCommand();

                cmd.CommandText = "SELECT * FROM  phonebook";

                MySqlDataAdapter adap = new MySqlDataAdapter(cmd);

                DataSet ds = new DataSet();

                adap.Fill(ds);

                //bindingSource1.DataSource = ds;

                dataGridView1.DataSource = ds.Tables[0].DefaultView;


            }

            catch (Exception)
            {
                throw;
            }


            finally {


                if (con.State == ConnectionState.Open)
                {

                    con.Close();
                }
            
            
            
            }
            
        
        
        }


    }
}


Что я уже пробовал:

*------------------------------------------------------------------------------------------*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Suvendu Shekhar Giri

.и действительно ли у вас есть datagridview в вашей форме с именем "dataGridView1"?

1 Ответов

Рейтинг:
0

Mycroft Holmes

ID и Mobile не имеют префикса txt (предположительно, это имя элемента управления в форме.

То, что вы должны были сделать, это:
откройте свою базу данных в инструменте управления (SSMS для sql server, не знаю, что для MySql)
Убедитесь, что запись была сохранена правильно

Поставьте точку останова в событии Button_Click и шагайте через метод, проверяя значения входных данных.