Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

I am working on a small windows forms program with C#

Posted on 2015-02-22
5
Medium Priority
?
70 Views
Last Modified: 2015-02-23
I need to update mysql local server with data from datagridview.
namespace StoreManager
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'storeDataSet.Customer' table. You can move, or remove it, as needed.
            this.customerTableAdapter.Fill(this.storeDataSet.Customer);

        }

        private void dataGridStudent_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void btnAdd2Database_Click(object sender, EventArgs e)
        {
                // dataGridStudent.Rows.Count 
                //MessageBox.Show("Count=1");
            SqlConnection storeConnection = new SqlConnection(global::StoreManager.Properties.Settings.Default.StoreConnectionString);
            int last=0;
            string keys = "", values = "";
            for (int i = dataGridStudent.ColumnCount-1; i > 0; i--)
                if (String.Compare(dataGridStudent.Rows[0].Cells[i].Value.ToString(), "") != 0)
                { last = i; break; } // Get the position pf the last non empty cell.(last)
                for (int i = 0; i < dataGridStudent.ColumnCount; i++)
                {

                    if (String.Compare(dataGridStudent.Rows[0].Cells[i].Value.ToString(), "") != 0)
                    {
                        values +="'"+ dataGridStudent.Rows[0].Cells[i].Value.ToString()+"'";
                        keys += dataGridStudent.Columns[i].HeaderText;
                        if (i != last )
                        { keys += ","; values += ","; }
                    }
                }
                try
                {
                   string sqlQuery = "INSERT INTO Customer ("+keys+") values (" + values+ ")";
                    //this.customerBindingSource.AddNew();
                    //MessageBox.Show(sqlQuery);
                   storeConnection.Open();
                   SqlCommand com_query = new SqlCommand(sqlQuery, storeConnection);                    
                   com_query.ExecuteNonQuery();
                   this.customerTableAdapter.Fill(this.storeDataSet.Customer); 
                    
                    MessageBox.Show(sqlQuery);
                    Form2 form2 = new Form2();
                    form2.Show();
                }
                catch (Exception ex)
                {
                   MessageBox.Show(ex.Message);
                }
                finally { //MessageBox.Show("Done!"); 
                    storeConnection.Close();
                    storeDataSet.Customer.AcceptChanges();
                }
        }
    }
}

Open in new window



Can I refresh mysql server with data from datagridview without going about each row with insert commands!?
is there a way to fill database from datagridview just like we fill datagridview from database.

In other words what is the best easiest fastest way to add a row to database using datagridview?
0
Comment
Question by:aboo_s
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 23

Expert Comment

by:Michael Fowler
ID: 40624724
Have a look at using a MVP framework
https://winformsmvp.codeplex.com/
0
 
LVL 10

Author Comment

by:aboo_s
ID: 40625081
Michael74 ,thanks for your response.
I only need to know if in the implementation of sql local server in c# there is a function that will auto fill a sql table from a datagridview. So I don't have to reinvent the wheel. I duckduckgo'ed for an example on the web that will demonstrate the whole local sql <--> datagridview experience but haven't got any good examples. So I thought maybe some expert out there could know anything that will spare the time of going through all documentation of c#.

I do use MVP architecture in my web development ,I use Joomla. But the thing here is that I would like to save time and effort. You know instead of creating views to show tables from sql and creating save functions to save back datagridviews updates to tables, just use the existing functions. Now I have figured out the use of the function to fill a datagridview from a table ,but still have problems with opposite direction!
0
 
LVL 23

Accepted Solution

by:
Michael Fowler earned 2000 total points
ID: 40625092
0
 
LVL 10

Author Comment

by:aboo_s
ID: 40625638
Thank you ,that does help a lot ,even though I am using mysql local server rather than ADO ,it still helps a lot.
I haven't yet read the whole article ,the first ,so I am now going to.

Thanks again.
0
 
LVL 10

Author Closing Comment

by:aboo_s
ID: 40625642
Thank you
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

OfficeMate Freezes on login or does not load after login credentials are input.
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
This Micro Tutorial will teach you the basics of configuring your computer to improve its speed. It will also teach you how to disable programs that are running in the background simultaneously. This will be demonstrated using Windows 7 operating…
This Micro Tutorial will give you a introduction in two parts how to utilize Windows Live Movie Maker to its maximum capability. This will be demonstrated using Windows Live Movie Maker on Windows 7 operating system.
Suggested Courses

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question