Quantcast
Channel: Windows Forms Data Controls and Databinding forum
Viewing all articles
Browse latest Browse all 2535

Add new Row into databse only using datagridView

$
0
0

I have GridView in windows Form using C# ...

The data is showing Successfully a and update can also being done successfully ...

but problem is with insertion .... when I try to insert multiple data into database using Iteration then the it stores 13 times into database because by the datagrid initially show 13 records from database ... I meant that it stores new rows multiple times(datagridview rows count) into database ...

let suppose I want to save two rows into databse but it stores 1st row into database 13 times(total number of datagridview rows)

Please check where I am doing mistake

Note: I want to use single datagridview for displaying , update , insert and delete data from database ... I have button through which I want to start insertion all new rows to database

here my codes is below

string connection = System.Configuration.ConfigurationManager.ConnectionStrings["AuzineConnection"].ConnectionString;

                    using (SqlConnection sqlconn = new SqlConnection(connection))
                    {
            sqlconn.Open();


             foreach (DataGridViewRow row in dataGridView1.Rows)
            {
               if (row.IsNewRow)
                {
                        using (SqlCommand sqlcomm = sqlconn.CreateCommand())
                        {



                            //sqlcomm.CommandText = "Insert into QF (profileID, UserNameLogInName, UserFullName,Email, forumtitle, subtitle, subjecttitle ,noreply, noview , qtags ,Question ,Questiondetails ,questionstatus, qdate,  Status ,todate) values(@status)";
                            sqlcomm.CommandText = "Insert into QF (UserNameLogInName,Status ) values(@UserNameLogInName,@status)";


                            try
                            {

                                sqlcomm.Parameters.AddWithValue("UserNameLogInName", dataGridView1.CurrentRow.Cells["UserNameLogInName"].Value.ToString());
                                sqlcomm.Parameters.AddWithValue("Status", dataGridView1.CurrentRow.Cells["Status"].Value.ToString());

                                sqlcomm.ExecuteNonQuery();
                                //MessageBox.Show(dataGridView1.Rows[Convert.ToInt32(RecordIndexNumber.Text)].Cells[Convert.ToInt32(ColInexNum.Text)].Value.ToString());


                            }
                            catch (Exception ex)
                            {
                                btnInsert.Text = ex.Message.ToString();
                            }
                        }
                    }
                }
            }

    }

I have tried it if (!row.IsNewRow) also but with it ! this it stores only one row and without it stores multiple unwanted times into database

i also used //for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) //{} but the same issue etier it stores one or multiple times

I just wanted to insert the new rows generated by the user on button click.....

Well the codes which display data are below 

 private void GetAllData()
        {


           string connection = System.Configuration.ConfigurationManager.ConnectionStrings["AuzineConnection"].ConnectionString;


           using (SqlConnection sqlconn = new SqlConnection(connection))
            {
                sqlconn.Open();
                MessageBox.Show("Connected");
                using (SqlCommand sqlcomm = sqlconn.CreateCommand())
                {
                    sqlcomm.CommandText = "Select * From QF";

                    // SqlDataReader rdr = null;

                    sda = new SqlDataAdapter(sqlcomm);
                    dt = new DataTable();
                    ds = new DataSet();
                    sda.Fill(dt);
                    sda.Fill(ds);

                   // BindingSource bindingSource = new BindingSource();
                   // bindingSource.DataSource = dt;


                   
                    try
                    {
                      // sqlconn.Open();
                       if (dt.Rows.Count > 0)
                       {
                           dataGridView1.AutoGenerateColumns = false;
                           dataGridView1.DataSource = dt;
                           label1.Text = dataGridView1.RowCount.ToString();
                       }

                      }
                    catch (Exception ex)
                    {
                     label1.Text = ex.Message.ToString();
                    }
                }
            }


        }



Hi This is Syed Azy


Viewing all articles
Browse latest Browse all 2535

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>