C# 对象引用未设置为c中对象的实例#

C# 对象引用未设置为c中对象的实例#,c#,C#,我正在尝试使用combobox值筛选Datagirdview 代码在这里 OleDbDataAdapter dt = new OleDbDataAdapter(); DataTable tt = new DataTable(); BindingSource bs = new BindingSource(); OleDbConnection con = new OleDbConnection(); co

我正在尝试使用combobox值筛选Datagirdview

代码在这里

OleDbDataAdapter dt = new OleDbDataAdapter();
            DataTable tt = new DataTable();
            BindingSource bs = new BindingSource();
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Rock.accdb";
            con.Open();
            string query = "SELECT * FROM bankdet WHERE [date] Between @a AND @b";
            OleDbCommand cmd = new OleDbCommand(query, con);
            cmd.Parameters.AddWithValue("@a", dateTimePicker1.Text);
            cmd.Parameters.AddWithValue("@b", dateTimePicker2.Text);
            dt.SelectCommand = cmd;
            dt.Fill(tt);
            bs.DataSource = tt;
            dataGridView1.DataSource = bs;
            dt.Update(tt);
            con.Close();

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                string s = row.Cells[1].Value.ToString();
                if (!s.StartsWith(comboBox2.Text, true, null))
                {
                    CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[dataGridView1.DataSource];
                    currencyManager1.SuspendBinding();
                    row.Visible = false;
                    currencyManager1.ResumeBinding();
                }
                else
                    row.Visible = true;
            }
前半部分用值填充datagirdview,第二部分必须对其进行过滤。。。 相反,我得到了错误的答案

string s = row.Cells[1].Value.ToString();
知道为什么吗

row.Cells[1]

返回null。然后尝试调用null上的Value或ToString()


因此,你必须设置一个断点,看看那里发生了什么。

在你得到错误的那一行设置一个断点,然后检查什么是空的?我只理解其中的一部分,请解释一下。。。
row.Cells[1].Value