3 DataGridViews相互关联的问题

时间:2017-06-03 08:32:39

标签: c# visual-studio-2010 datagridview

我的Windows窗体中有三个Datagridviews。一个人带来了村庄的数据,点击任何一个单元格,第二个Datagridview填充了客户详细信息。在点击客户名称时,第三个Datagridview必须填充并计算客户的余额,无论信用是剩余还是提前存入,现在我面临的问题是第三个数据网格。

它特别抛出异常:对象引用设置为null。

    private void dataGridView3_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        double loansum1 = 0;
        double emisum1 = 0;
        double dd1 = 0;
        double ei1 = 0;
        double finalsum = 0;
        foreach (DataGridViewRow drr1 in dataGridView3.Rows)
        {
            if (drr1.Cells[1].Selected == true)
            {
                string customerid = drr1.Cells[0].Value.ToString();
                label1.Text = customerid;
                SqlConnection setcon = new SqlConnection(ConfigurationManager.ConnectionStrings["sismanager"].ConnectionString);
                using (SqlCommand getsup = new SqlCommand("SELECT Ciid, Cdate, Cparticulars, Ccr, Cdr FROM Customerbills WHERE Cid = @Cid ORDER BY Cdate DESC", setcon))
                {
                    getsup.Parameters.AddWithValue("@Cid", customerid);
                    SqlDataAdapter drrr = new SqlDataAdapter(getsup);
                    try
                    {
                        setcon.Open();
                        DataTable data1 = new DataTable();
                        drrr.Fill(data1);

                        if (data1.Rows.Count > 0)
                        {
                            dataGridView1.DataSource = data1;
                            dataGridView1.Columns[0].HeaderText = "Bill Number";
                            dataGridView1.Columns[1].HeaderText = "Bill Date";
                            dataGridView1.Columns[2].HeaderText = "Particulars";
                            dataGridView1.Columns[3].HeaderText = "Credit Balance";
                            dataGridView1.Columns[4].HeaderText = "Cash Balance";

                            for (int ij = 0; ij < (dataGridView1.Rows.Count); ++ij)
                            {
                                dd1 = Double.Parse(dataGridView1.Rows[ij].Cells[3].Value.ToString());
                                ei1 = Double.Parse(dataGridView1.Rows[ij].Cells[4].Value.ToString());
                                loansum1 += dd1;
                                emisum1 += ei1;
                            }
                            label4.Text = (Math.Round(loansum1)).ToString();
                            label5.Text = (Math.Round(emisum1)).ToString();
                            finalsum = (emisum1 - loansum1);
                            if (finalsum >= 0)
                            {
                                label6.Text = "Rs. " + finalsum + " (Previous Amount Clear)";
                            }
                            else
                            {
                                label6.Text = "Rs. " + finalsum + " (Previous Amount Due)";
                            }
                        }

                    }
                    catch (SqlException exx)
                    {

                    }
                    finally
                    {
                        setcon.Close();
                    }

              }

            }

        }
    }

异常错误发生在:

    dd1 = Double.Parse(dataGridView1.Rows[ij].Cells[3].Value.ToString());

Error Image below; It shows in call stack that the data is coming.

0 个答案:

没有答案