Populate DataGridView with MySql Query

I have a simple query that I need to bind to a datagrid for viewing. I have seen several tutorials but not many using MySql. I need to be able to bind this using my query method below. Can someone help me out here. I could figure it out eventually but really don't want to waste much time on this.

The query method I use works, but how do I bind the results to the datadridview control.

Thanks
private void SetHistoryListView()
        {
            clsMySqlODBCConnection MySqlCnn = new clsMySqlODBCConnection();
            string strQry = null;
            int tserialnumber = 0;
            //
            strQry = "Select * FROM HIstory WHERE SerialNumber = " + tserialnumber + "";
            MySqlCnn.MySQLQuery(strQry);
            while (MySqlCnn.OdbcDR.Read())
            {
                datagridView.DataSource = 1;
            }
        }

Open in new window

LVL 1
SaltyDawgAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

anarki_jimbelSenior DeveloperCommented:
In some sense does not matter what DB you use. You need to fill some Datatable object and set is as a datasource for the datagridview. datagridView.DataSource = 1; does not make sense really.

Check on Internet how to get results to a dataadapter, e.g.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
anarki_jimbelSenior DeveloperCommented:
0
SaltyDawgAuthor Commented:
This is the Connection Class I use throughout my project. The examples I find have a difference connection method. I would like to be able to use my own class to bind the datagridview, but I am not sure how to make the connection with datagridView.DataSource.
datagridView.DataSource  = ?

datagridView.DataSource = MySqlCnn.MySQLQuery(strQry);
This does not error but I can see this is not correct.

    class clsMySqlODBCConnection
    {
        public int QueryType = 0;
        public System.Data.Odbc.OdbcConnection OdbcCon;
        public System.Data.Odbc.OdbcCommand OdbcCom;
        public System.Data.Odbc.OdbcDataReader OdbcDR;
        public string ConStr;
        private string MySqlServer = "linux02", MySqlPort = "", MySqlDatabase = "EbtronSystems", MySqlUser = "jimmy", MySqlUserPass = "ebtron", MySqlOption = "3";

        public clsMySqlODBCConnection()
        {
            ConStr = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" + MySqlServer + ";PORT=" + MySqlPort + ";DATABASE=" + MySqlDatabase + ";UID=" + MySqlUser + ";PWD=" + MySqlUserPass + ";OPTION=" + MySqlOption + "";
            OdbcCon = new System.Data.Odbc.OdbcConnection(ConStr);

            try
            {
                //txtLog.AppendText("Openning connection...\r\n");
                if (OdbcCon.State == ConnectionState.Closed)
                {
                    OdbcCon.Open();
                }
                //txtLog.AppendText("Connection opened\r\n");
                //MessageBox.Show("Connection opened\r\n");
            }
            catch (System.Data.Odbc.OdbcException Ex)
            {
                //txtLog.AppendText(Ex.Message + "\r\n");
                //MessageBox.Show("Could not access the database.\r\nPlease make sure you completed the fields with the correct information and try again.\r\n\r\nMore details:\r\n" + Ex.Message, "Database connection error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public void MySqlDisconnection()
        {
            if (OdbcCon.State == ConnectionState.Open)
            {
                OdbcCon.Close();
                //MessageBox.Show("Connected Closed\r\n");
            }
        }

        public void ShowTables()
        {
            if (OdbcCon.State == ConnectionState.Open)
            {
                OdbcCom = new System.Data.Odbc.OdbcCommand("SHOW TABLES", OdbcCon);
                OdbcDR = OdbcCom.ExecuteReader();
                //txtLog.AppendText("Tables inside " + txtDatabase.Text + ":\r\n");
                while (OdbcDR.Read())
                {
                    //txtLog.AppendText(">> " + OdbcDR[0] + "\r\n");
                }
            }
        }

        public string[] MySQLQuery(string qry, int fldidx)
        {
            List<string> list = new List<string>();

            string tStr = null;     // the following is not needed: = Convert.ToString(null);
            if (OdbcCon.State == ConnectionState.Open)
            {
                OdbcCom = new System.Data.Odbc.OdbcCommand(qry, OdbcCon);
                if (fldidx >= 0)
                {
                    OdbcDR = OdbcCom.ExecuteReader();
                    while (OdbcDR.Read())
                    {
                        tStr = Convert.ToString(OdbcDR[fldidx]);
                        list.Add(tStr);
                    }
                }
                else
                {
                    OdbcCom.ExecuteNonQuery();
                    QueryType = 1;
                }
            }
            return list.ToArray();
        }

        public IDataReader MySQLQuery(string qry)
        {
            if (OdbcCon.State == ConnectionState.Open)
            {
                OdbcCom = new System.Data.Odbc.OdbcCommand(qry, OdbcCon);
                OdbcDR = OdbcCom.ExecuteReader();
            }
            return OdbcDR;
        }

        public void MySQLNONQuery(string qry)
        {
            if (OdbcCon.State == ConnectionState.Open)
            {
                OdbcCom = new System.Data.Odbc.OdbcCommand(qry, OdbcCon);
                OdbcCom.ExecuteNonQuery();
                QueryType = 1;
            }
        }

        public object InitializeCnnObject()
        {
            // Create and initilize a recordset to represent the User Table
            clsMySqlODBCConnection OpenConnection = new clsMySqlODBCConnection();
            return OpenConnection;
        }

    }

Open in new window

0
SaltyDawgAuthor Commented:
Also how is MySqlDataAdapter used?
0
SaltyDawgAuthor Commented:
How do I set MySqlDataAdapter ?
 
Thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.