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

时间:2014-03-21 18:26:34

标签: c# .net winforms devexpress xtragrid

我的对象引用没有设置为对象的实例 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;

2 个答案:

答案 0 :(得分:1)

&#34; SomethingA&#34;网格列甚至存在?

您说没有空值,因为您确保您的查询没有任何结果,但这与您的联系方式无关您的可视网格列对象。如果网格没有&#34; SomethingA&#34;然后,无论您的代码确定哪些数据都会失败。

(以上情况无关紧要,因为我知道我们正在谈论XtraGrid)

<强>更新

首先,要按字段名称检索DevExpress的GridView列,您必须使用列集ColumnByFieldName方法:

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

其次,下次提问时,请确保包含所有必要的详细信息。正如您所见,您使用第三方网格的事实会改变一切。不是每个网格都是一样的。我编辑了您的帖子以添加相关标签。将来,请务必加入它们。

第三,当被要求exception stack trace时,这意味着单独的错误消息不足以正确诊断问题。堆栈包含有关代码执行步骤的重要信息。如果您需要有关例外的帮助,那么您最好提供该信息。

第四个也是最后一个,DevExpress拥有自己的support center。你的问题可能会更好地回答。

答案 1 :(得分:1)

我查看了这段代码,它运行正常。

 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));
 }