C#:DGV验证单元格内容

时间:2016-12-17 14:23:31

标签: c# datagridview

我创建了一个带有datagridview的软件。它可以保存来自datagridview的所有数据。但问题是数据,如果用户不在一个单元格中插入数据,软件就会崩溃。我怎么验证这个?我使用以下代码保存dgv内容:

//Write in file
     StreamWriter ecriture = new StreamWriter(tes, true);



        for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
        {


            for (int j = 0; j < dataGridView1.Columns.Count; j++)
            {
                ecriture.Write("\t"+dataGridView1.Rows[i].Cells[j].Value.ToString()+"\t"+"|");
            }
            ecriture.WriteLine("");

        }
        ecriture.Close();

我希望你能帮助我:) 感谢法国

1 个答案:

答案 0 :(得分:0)

您应该创建一个数据模型,只是一个包含与数据网格列对应的属性的类。

public class MyModel {
     public string prop1 {get;set;}
}

然后将BindingList<MyModel>绑定到您的网格中:

dgv.DataSource = myList;

然后使用该对象列表从网格获取数据,而不是从单元格中读取文本或值。

您可以随时检查单元格是否具有VALUES等,但这不是非常面向对象的方法,并且当您想要重新排序列时代码更改也非常难以维护。

要阅读的内容:

https://msdn.microsoft.com/en-us/library/y0wfd4yz(v=vs.110).aspx

Binding List<T> to DataGridView in WinForm

如果您仍想按照自己的方式行事,请确保该链中的所有元素都不为空。

dataGridView1.Rows[i].Cells[j].Value.ToString()

如果具有该索引的Row不存在,则IndexOutOfRangeException与给定索引的列相同。如果单元格存在但是为空,则其Value为NULL,然后您获得NullReferenceException,因为您无法对空对象执行ToString