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