首页 > 解决方案 > DataGridView:对象引用未设置为对象的实例

问题描述

我有一个文本框,通过该文本框搜索 a 的"Name"列,datagridview但在运行时抛出异常Object reference not set to an instance of an object

 private void textBox1_TextChanged(object sender, EventArgs e)
 {
            string searchstring = textBox1.Text;
            try
            {
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.Cells[1].Value.ToString().Contains(searchstring))
                    {
                         Do something   
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
}

在此处输入图像描述

标签: c#

解决方案


使用前检查状况foreach

选项1:

for(int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    if (dataGridView1.Rows.Rows[i].Cells[j].Value != null)
                    {
                           foreach (DataGridViewRow row in dataGridView1.Rows)
                            {
                                if (row.Cells[0].Value.ToString().Contains(searchstring))
                                {
                                     //Do something   
                                }
                            }

                    }

                }

            }

选项 2:

if (dataGridView1.Rows.Count > 0)
                    {
                           foreach (DataGridViewRow row in dataGridView1.Rows)
                            {
                                if (row.Cells[0].Value.ToString().Contains(searchstring))
                                {
                                     //Do something   
                                }
                            }

                    }

推荐阅读