C# 我想检查在Data gridview中输入的值是否已经存在?

C# 我想检查在Data gridview中输入的值是否已经存在?,c#,gridview,datagridview,C#,Gridview,Datagridview,我正在尝试验证我的datagridview。当我在一行中添加了一些数据,并且在另一行中输入了一些数据时,它应该会显示一条消息。 我正在尝试以下代码。引发空异常错误。 因为特定单元格中的值为空。 它无法获取值 private void dataGridViewBrandDetails_CellLeave(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0 &

我正在尝试验证我的datagridview。当我在一行中添加了一些数据,并且在另一行中输入了一些数据时,它应该会显示一条消息。 我正在尝试以下代码。引发空异常错误。 因为特定单元格中的值为空。 它无法获取值

private void dataGridViewBrandDetails_CellLeave(object sender, DataGridViewCellEventArgs e)
    {
                    if (e.ColumnIndex == 0 && e.RowIndex > -1)
        {
        var dgv = sender as DataGridView;
   for (int i = 0; i < dataGridViewBrandDetails.Rows.Count; i++)
       {


            string s = dgv[e.ColumnIndex, e.RowIndex].Value.ToString();

           if (dataGridViewBrandDetails.Rows[i].Cells[0].Value != null && dataGridViewBrandDetails.Rows[e.RowIndex].Cells[0].Value.ToString() == dataGridViewBrandDetails.Rows[i].Cells[0].Value.ToString())
            {

                MessageBox.Show("The value already existed in DataGridView.");


            }

        }   

        }

    } 
private void dataGridViewBrandDetails\u CellLeave(对象发送方,DataGridViewCellEventArgs e)
{
如果(e.ColumnIndex==0&&e.RowIndex>-1)
{
var dgv=作为DataGridView的发送方;
对于(int i=0;i
改变几件事:

private void dataGridViewBrandDetails_CellLeave(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 0 && e.RowIndex > -1)
        {
        var dgv = sender as DataGridView;
        string s = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        for (int i = 0; i < dataGridViewBrandDetails.Rows.Count; i++)
        {
           if(i!=e.RowIndex) // To skip the row with newly inserted value
           {
               if (dataGridViewBrandDetails.Rows[i].Cells[0] != null && dataGridViewBrandDetails.Rows[i].Cells[0].Value.ToString() == s
               {
                   MessageBox.Show("The value already existed in DataGridView.");
               }
            }
        }   

        }

    }
private void dataGridViewBrandDetails\u CellLeave(对象发送方,DataGridViewCellEventArgs e)
{
如果(e.ColumnIndex==0&&e.RowIndex>-1)
{
var dgv=作为DataGridView的发送方;
字符串s=dgv.Rows[e.RowIndex]。单元格[e.ColumnIndex]。Value.ToString();
对于(int i=0;i
我保持了你的代码的原样,只做了很少的更改。尽管你可能想做的更改很少。 第一:如果第一行是标题行,而不是有值的行,则将i=1。
第二:如果第0列的行包含控件,您应该将它们强制转换为control,然后读取它们的值。

在带有字符串s的行中。.值为null我不知道y