Click here to Skip to main content
15,899,754 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi Team,

I'm reading a file into datagridview by taking only 30 records (Total record count of file is 120). After clicking on next button, another 30 records will load.
I have a concept where i need to merge 2 columns values in datagridview. When i do that, it's only applicable to that page only. Again i have to click next and should click on merge and do the same procedure.

Can anyone pleaseee help me on this as i'm involved in this from middle. Below mentioned is the code:

BROWSE BUTTON CODE (Where i read the file into array):

C#
private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory = "Desktop";
            openFileDialog1.Filter = "dat files (*.DAT)|*.DAT|All files (*.*)|*.*";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    FileName = openFileDialog1.FileName;
                    string text = System.IO.File.ReadAllText(FileName);
                    datfile = text.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
                    //Added on 2015-12-02
                    maxRec = datfile.Length - 1;
                    PageCount = maxRec / pageSize;
                    LoadPage(MyFOrmat);
                    //char c = (char)20;
                    #region Before Paging Concept


                    //dataGridView1.Rows.Clear();
                    //dataGridView1.Columns.Clear();
                    //string text = System.IO.File.ReadAllText(openFileDialog1.FileName);
                    //String[] datfile = text.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
                    //int rowindex = 0;

                    //for (int RowCount = 0; RowCount <= datfile.Length - 1; RowCount++)
                    //{
                    //    if (datfile[RowCount].ToString() != "")

                    //    {
                    //        if (RowCount == 0)
                    //        {
                    //            string[] column = datfile[RowCount].Trim('þ').Split('\u0014');
                    //            for (int i = 0; i <= column.Length - 1; i++)
                    //            {
                    //               // if (column[i].ToString() != '\u0014')//0x00B6\\
                    //                if (column[i].ToString() != "" && column[i].ToString() != "\u0014")//¶ ¶  ¶  

                    //                {
                    //                    //string columnT = column[i].ToString().Trim('þ');

                    //                    DataGridViewTextBoxColumn dgvtxtcountry = new DataGridViewTextBoxColumn();
                    //                    dgvtxtcountry.HeaderText = column[i].ToString().Trim('þ');
                    //                    dgvtxtcountry.Name = column[i].ToString().Trim('þ');
                    //                    dataGridView1.Columns.Add(dgvtxtcountry);
                    //                    cmbList.Add(column[i].Trim('þ'));
                    //                }
                    //              // i++;
                    //            }
                    //        }

                    //        if (RowCount != 0)
                    //        {
                    //            dataGridView1.Rows.Add();
                    //            //string[] column = datfile[RowCount].Trim('þ').Split('þ');
                    //            string[] column = datfile[RowCount].Trim('þ').Split('\u0014');
                    //            int index = 0;
                    //            for (int i = 0; i <= column.Length - 1; i++)
                    //            {
                    //                if (column[i].ToString() != "" && column[i].ToString() != "\u0014")
                    //                //if (column[i].ToString() != "" && column[i].ToString() != "¶")
                    //                {
                    //                    dataGridView1.Rows[rowindex].Cells[index].Value = column[i].Trim('þ');
                    //                    index += 1;
                    //                }
                    //            }
                    //            rowindex += 1;
                    //        }

                    //    }
                    //}
                    #endregion
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }

CODE FOR MERGING TWO COLUMNS:

<pre lang="C#">private void btnMerge_Click(object sender, EventArgs e)
     {
         frmMerge fs = new frmMerge(dataGridView1);
         fs.cmbColumn1.DataSource = cmbList;

         for (int i = 0; i <= cmbList.Count - 1; i++)
         {
             fs.cmbColumn2.Items.Add(cmbList[i]);
         }

         fs.ShowDialog();
     }

Thanks in advance.
Posted
Comments
dan!sh 7-Jan-16 22:45pm    
Where is your code for merging?
Member 8010354 8-Jan-16 2:03am    
I posted in that code itself (down to the page). I'm posting again
Thanks in advacne

CODE FOR MERGING TWO COLUMNS:

private void btnMerge_Click(object sender, EventArgs e)
{
frmMerge fs = new frmMerge(dataGridView1);
fs.cmbColumn1.DataSource = cmbList;

for (int i = 0; i <= cmbList.Count - 1; i++)
{
fs.cmbColumn2.Items.Add(cmbList[i]);
}

fs.ShowDialog();
}
Member 8010354 8-Jan-16 2:44am    
Button click event code for Merge in another form:

DataGridViewTextBoxColumn dgvctime = new DataGridViewTextBoxColumn();
dgvctime.Name = cmbColumn1.Text;
dgvctime.HeaderText = cmbColumn1.Text;
dataGridView1.Columns.Add(dgvctime);

for (int i = 0; i <= dgvMerge.Rows.Count - 1; i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells[cmbColumn1.Text].Value = dgvMerge.Rows[i].Cells[cmbColumn1.Text].Value + " " + dgvMerge.Rows[i].Cells[cmbColumn2.Text].Value;
}
}
Sinisa Hajnal 8-Jan-16 6:19am    
Why don't you auto-merge on loading? If this has to be in separate form, then save the state of the form and use it to merge next batch without user input.
Member 8010354 8-Jan-16 6:36am    
I can't do automerge as i will use that functionality based on the requriement only.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900