未设置为对象实例的GridControl Object引用

本文关键字:GridControl Object 引用 实例 设置 对象 | 更新日期: 2023-09-27 17:51:18

我得到对象引用未设置为对象 w的实例我先读到DataTable,然后读

  gridControl2.DataSource = dataTable5;

我读。txt文件到GridControl就好了。在使用:

后,我得到了错误。
gridView2.Columns["SomethingA"].Visible = false;

我不认为列上有空值,因为我使用SQL查询获取了这些值并避免了空值。

编辑:完整代码

 char[] chrArray10 = new char[1];
        chrArray10[0] = ''t';
        Assembly assembly = Assembly.LoadFile("C:/Users/PC-ASQ/documents/visual studio 2013/Projects/ClassLibrary1/ClassLibrary1/bin/Debug/Mydll.dll");
        System.Resources.ResourceManager resourcemanager = new System.Resources.ResourceManager("ClassLibrary1.Properties.Resources", assembly);

        var textList = resourcemanager.GetString("GISS").Split(chrArray10);
        string[] strArrays15 = resourcemanager.GetString("GISS").Split(''n');

        string[] strArrays16 = strArrays15[0].Split(chrArray10);
        DataTable dataTable5 = new DataTable();
        string[] strArrays17 = strArrays16;
        for (int s = 0; s < (int)strArrays17.Length; s++)
        {
            string str5 = strArrays17[s];
            dataTable5.Columns.Add(str5);
        }
        for (int t = 1; t < (int)strArrays15.Length; t++)
        {
            char[] chrArray11 = new char[1];
            chrArray11[0] = ''t';
            dataTable5.Rows.Add(strArrays15[t].Split(chrArray11));
        }

        gridControl2.DataSource = dataTable5;

       gridView2.Columns["ToolTip"].Visible = false;
       gridView2.Columns["Icons"].Visible = false;

        return;

未设置为对象实例的GridControl Object引用

我检查了这段代码,它工作得很好。

 DataTable datatable5 = new DataTable();
 datatable5.Columns.Add("ToolTip");
 datatable5.Columns.Add("Icons");
 datatable5.Columns.Add("ID");
 datatable5.Columns.Add("Number");
 for (int i = 0; i < 4; i++)
     datatable5.Rows.Add(new object[] { String.Format("ToolTip{0}.", i),i,i,i});
  gridControl2.DataSource = dataTable5;
  gridView2.Columns["ToolTip"].Visible = false;
  gridView2.Columns["Icons"].Visible = false;

在您的代码中:放置breakpoint并检查column names如何添加到datatable

 DataTable dataTable5 = new DataTable();
 string[] strArrays17 = strArrays16;
 for (int s = 0; s < (int)strArrays17.Length; s++)
 {
     string str5 = strArrays17[s];
     dataTable5.Columns.Add(str5);//check any extra space adding here
 }
 for (int t = 1; t < (int)strArrays15.Length; t++)
 {
     char[] chrArray11 = new char[1];
     chrArray11[0] = ''t';
     dataTable5.Rows.Add(strArrays15[t].Split(chrArray11));
 }

"SomethingA"网格列是否存在?

你说没有空值,因为你确保你的查询没有任何结果,但这与你如何到达你的可视化网格列对象无关。如果网格没有"SomethingA"列,那么不管数据是什么,你的代码肯定会失败。

(既然我知道我们在谈论XtraGrid,上面的内容就无关紧要了)

更新:

首先,要通过字段名检索DevExpress的GridView列,必须使用列集合的ColumnByFieldName方法:

gridView2.Columns.ColumnByFieldName("SomethingA").Visible = false;

第二,下次你问问题时,一定要包括所有必要的细节。正如你所看到的,你正在使用第三方网格的事实改变了一切。不是每个网格都是一样的。我编辑了你的帖子,添加了相关的标签。在将来,一定要包括它们。

第三,当请求异常堆栈跟踪时,这意味着单独的错误消息不足以正确诊断问题。堆栈保存有关代码所执行步骤的重要信息。如果你在遇到异常时需要帮助,最好提供相关信息。

第四,也是最后一点,DevExpress有自己的支持中心。你的问题可能会在那里得到更好的回答。