首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向List<DataTable>添加DataTable

向List<DataTable>添加DataTable
EN

Stack Overflow用户
提问于 2020-11-03 13:25:02
回答 1查看 28关注 0票数 0

我正在尝试将一个数据表添加到一个属于某种模态类的DataTable列表(post过滤器操作)。我在调试语句_return.SearchResult.Add(_i);上得到了下面的异常。我在实际的语句中也得到了同样的错误,_return.SearchResult.Add(_t);。请帮助我找出问题所在。

谢谢&致敬,S.Sudharsan

代码语言:javascript
复制
System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=*******
  StackTrace:
   at *******.*******.searchCMDBData(String SearchString) in D:\GIT_VS2019_WorkSpace\*******\*******\*******.asmx.cs:line 38
   at *******.*******._Default.DoSearch(Object sender, EventArgs e) in D:\GIT_VS2019_WorkSpace\*******\*******.*******\Default.aspx.cs:line 57
代码语言:javascript
复制
        public QR searchCMDBData(string SearchString)
        {
            QR _return = new QR();
            _return.responseType = ResponseType.MESSAGE;
            _return.responseMsg = "Successfully called as expected";
            string INVENTORY_FILE = ConfigurationManager.AppSettings["INVENTORY_FILE_PATH"];

            List<DataTable> _ret = new List<DataTable>();
            _ret = CMDB.GetRequestsDataFromExcel(INVENTORY_FILE);

            foreach (DataTable _i in _ret)
            {
                _return.SearchResult.Add(_i);
                if (_i.TableName == "Inventory Consolidated")
                {
                    DataTable _t = _i.AsEnumerable()
                            .Where(r => r.Field<string>("IP Address").Equals(SearchString) || r.Field<string>("Host Name").Equals(SearchString))
                            .CopyToDataTable();
                    if (_t.Rows.Count > 0)
                    {
                        _return.SearchResult.Add(_t);
                    }
                }
            }
            return _return;
        }
代码语言:javascript
复制
public enum ResponseType { SUCCESS, MESSAGE };

    public class QR
    {
        public ResponseType responseType;
        public string responseMsg;
        public List<DataTable> SearchResult;
    }
EN

回答 1

Stack Overflow用户

发布于 2020-11-04 01:12:22

您必须更新List<DataTable> SearchResult,否则您将尝试将一个值插入到空列表中,而不是插入到空列表中。

您可以在QR类的构造函数中执行此操作,如下所示:

代码语言:javascript
复制
public class QR
{
    public ResponseType responseType;
    public string responseMsg;
    public List<DataTable> SearchResult;

    public QR(){
      SearchResult = new List<DataTable>();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64657215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档