srikanth2321 -2 Junior Poster in Training

Hi,

I have a code which generated dynamic gridviews based on a column ('c_AnalyticalSystemID"). Now I have a samll problem in passing cell parameter into a textbox which I clicked on a datagridview.

the code is :

private void button1_Click(object sender, EventArgs e)
        {
           
           
          
           
                string query = "select t.c_AnalyticalSystemID,t.c_RetentionTime,t.c_IonType ,  t.c_MSstage,  k.c_MSstage, t.c_IonFormula, k.c_IonCharge, t.c_IonMass as 'Mass',  t.c_MinArea, t.c_UserID_stamp,c_Time_Stamp,k.c_IonTypeRule from C_Analytical_Type1 t  join C_AnalyticalSystems c on t.c_analyticalsystemid =  c. c_analyticalsystemid join  C_Analytical_Type1_IonTypes k on k.c_iontype = t.c_iontype  where t.c_id=" + Convert.ToInt32(textBox1.Text.ToString()) + "";
                DataTable dt_cmbo_ = new DataTable();
                OdbcDataAdapter cmbo_ = new OdbcDataAdapter("SELECT c_IonCharge,c_IonType,c_IonTypeExplained from  C_Analytical_Type1_IonTypes", OdbcCon);
                dt_cmbo_.Columns.Clear();
                dt_cmbo_.Rows.Clear();
                cmbo_.Fill(dt_cmbo_);
                OdbcCommand cmd = new OdbcCommand(query, OdbcCon);
                OdbcDataReader dr = cmd.ExecuteReader();
                DataTable dt1 = new DataTable();
                dt1.Load(dr);
           
         
            int margin = 30;
            Point pt = new Point(margin, margin);

            panel1.Controls.Clear();
            DataTable distinctSystemIDs = dt1.DefaultView.ToTable(true, "c_AnalyticalSystemID");
           // DataTable ion = dt.DefaultView.ToTable(true, "c_IonTypeExplained");

            for (int i = 0; i <= distinctSystemIDs.Rows.Count -1; i++)
            {
                DataSet az15 = new DataSet();

                DataSet z12 = new DataSet();
                OdbcDataAdapter adaper12 = new OdbcDataAdapter("SELECT c_IonType FROM C_Analytical_Type1 where c_id = ('" + textBox1.Text + "')", OdbcCon);
                adaper12.Fill(z12);

                foreach (DataRow row1 in z12.Tables[0].Rows)
                {
                    textBox2.Clear();
                    for (int i1 = 0; i1 < z12.Tables[0].Columns.Count; i1++)
                        textBox2.Text += row1[i1].ToString();
                }
                DataSet z1 = new DataSet();
                OdbcDataAdapter adaper1 = new OdbcDataAdapter("SELECT c_IonTypeExplained FROM C_Analytical_Type1_IonTypes where c_IonType = ('" + textBox2.Text + "')", OdbcCon);
                adaper1.Fill(z1);

                foreach (DataRow row1 in z1.Tables[0].Rows)
                {
                    textBox4.Clear();
                    for (int i1 = 0; i1 < z1.Tables[0].Columns.Count; i1++)
                        textBox4.Text += row1[i1].ToString();
                }
                DataSet az125 = new DataSet();
                OdbcDataAdapter adapter125 = new OdbcDataAdapter("select c_formula from C_Compound where c_id = ('" + textBox1.Text + "')", OdbcCon);
                adapter125.Fill(az125);
                //textBox11.Clear();
                foreach (DataRow row1 in az125.Tables[0].Rows)
                {
                    textBox6.Clear();
                    for (int i1 = 0; i1 < az125.Tables[0].Columns.Count; i1++)
                        textBox6.Text += row1[i1].ToString();

                }
                int systemID = (int)distinctSystemIDs.Rows[i][0];
                DataGridView dgw = new DataGridView();
                Label l = new Label();
                l.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
                l.Location = pt;
                l.Text = "System " + systemID.ToString();
                pt.Y += l.Height + 2; // margin is for spacing between grids
                dgw.Tag = systemID; // store systemID of the DGV if you need it later
                dgw.AllowUserToAddRows = false;
                dgw.AllowUserToDeleteRows = false;
                dgw.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
                dgw.Size = new Size(730, 100); // 2 * margin = left + right margin
                dgw.Location = pt;
                pt.Y += dgw.Height + margin; // margin is for spacing between grids
                //this.Controls.Add(dgw);
                // dgw.Columns["c_IonTypeRule"].Visible = false;
                //dgw.Columns["c_AnalyticalTypeExplained"].Visible = false;
                // dgw.Columns["c_ID"].Visible = false;
               
                cmdx.Name = "IonType";
                cmdx.DataPropertyName = "c_IonType";
                cmdx.HeaderText = "IonType";
                cmdx.Width = 80;
                cmdx.DataSource = dt_cmbo_;
                cmdx.ValueMember = "c_IonType";
                cmdx.DisplayMember = "c_IonTypeExplained";
                //c_IonTypeRule cmdx.DisplayMember = " c_IonCharge";
                panel1.Controls.Add(dgw);
                panel1.Controls.Add(l);
                dgw.Columns.Add(cmdx);
                DataView vw = new DataView(dt1, string.Format("c_AnalyticalSystemID = {0}", systemID), null, DataViewRowState.CurrentRows);
                dgw.DataSource = vw;
                dgw.Columns["c_AnalyticalSystemID"].ReadOnly = true;

                // dgw.Rows[i].Cells["IonCharge"].Value = textBox1.Text;
                dgw.Columns[3].Visible = false;
                int k = 0;
               

                //
                // textBox58.Text = mMwtWin1.ComputeMass(dt1.Rows[x]["Formula"].ToString().Trim()).ToString();
                for (int x = 0; x <= dt1.Rows.Count - 1; x++)
                {
                    string formulae = textBox6.Text.ToString();
                    string str11 = dt1.Rows[x]["c_IonTypeRule"].ToString();
                    string H = "+";
                   
                  

                        for (int v = 0; v <= str11.Length - 1; v++)
                        {

                            if (str11.Substring(v, 1).ToString() == "-" && char.IsLetter(Convert.ToChar(str11.Substring(v + 1, 1))))
                            {
                                H = "-";

                            }
                            if (str11.Substring(v, 1).ToString() != "-")
                            {
                                if (v <= str11.Length - 1)
                                {
                                    if (char.IsLetter(str11, v))
                                    {


                                        string atom = "";


                                        if (v + 1 <= str11.Length - 1 && char.IsLetter(Convert.ToChar(str11.Substring(v, 1))) && char.IsLower(str11, v + 1))
                                        {

                                            try
                                            {
                                                H = str11.Substring(v - 1, 1).ToString();
                                                atom = str11.Substring(v, 2).ToString();

                                            }
                                            catch (Exception ex)
                                            {
                                                H = "+";
                                                atom = str11.Substring(v, 2).ToString();

                                                // atom =
                                            }
                                            //  dt5.Rows[x]["c_IonFormula"] = get_numofstr(atom, formulae, H, get_numfrominotype(str11, v + 1));
                                            formulae = get_numofstr(formulae, H, get_numfrominotype(str11, v + 1), atom).ToString();

                                            v = v + 1;
                                            H = "+";
                                        }
                                        else
                                        {

                                            atom = str11.Substring(v, 1).ToString();
                                            dt1.Rows[x]["c_IonFormula"] = get_numofstr(formulae, H, get_numfrominotype(str11, v), atom);
                                            formulae = dt1.Rows[x]["c_IonFormula"].ToString();
                                            textBox5.Text = formulae;
                                            H = "+";
                                        }

                                    }
                                }
                            }
                        }

                        MwtWinDll.MolecularWeightCalculator mMwtWin1 = new MwtWinDll.MolecularWeightCalculator();
                        dt1.Rows[x]["Mass"] = mMwtWin1.ComputeMass(dt1.Rows[x]["c_IonFormula"].ToString().Trim()).ToString();
                    }
               

                }
         
                    }

 

private void dgw_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                    DataGridViewRow row = new DataGridViewRow();
                    //DataGridView dgw = new DataGridView();
                    row = dgw.Rows[e.RowIndex];
                    //  d2 = 1;
                    // Will put the value of the first column of the selected row into the textbox
                    textBox60.Text = row.Cells[e.ColumnIndex].Value.ToString();
                }

Is it correct what I'm doing to get the value of cell into a textbox when clicked on a paticular datagridview.