'DataRow'对象引用未设置为对象的实例。

时间:2019-09-19 06:08:32

标签: c# asp.net asp.net-mvc

我使用ASP.NET WebForms已经有一段时间了,我决定尝试将我的一些工作转换为ASP.NET MVC。

现在,当有结果/行时,我不知道为什么我的DataRownull

这是代码和错误

Here is the code and error

string id= Session["role"].ToString() == "Admin" ? "0" : Session["emp_id"].ToString();

DataTable dt2 = getdata.accessAdmin(id);

DataRow[] dr = dt2.Select("default=0");

if (id != "0" && Session["emp_id"].ToString() != "0")
{
   <li>
     <a href="employee-dashboard"><i class="fa fa-arrow-left"></i><span>Back </span></a>
   </li>
}

foreach (DataRow row in dr)
{
   if (row["url"].ToString().Length > 1)
     {
       <li>
       <a href="@row["url"]">
       <i class="@row["icon"]"></i><span>
              @row["name"]
        </span>
       </a>
      </li>
     }
}

我的getdata.cs:

public static DataTable accessAdmin(string id)
{
    return dbhelper.getdata("Select a.user_id,b.* from nobel_userRight a left join nobel_route b on b.id=a.route_Id where b.system=2 and a.user_id=" + id + " order by seqs asc");
}

1 个答案:

答案 0 :(得分:0)

{% for img in item.images.all %} {% if forloop.first %} <td> <img src="{{ img.image.url }}"/> </td> {% endif %} {% endfor %} 看起来不正确。根据{{​​1}}属性的类型,尝试将下面的代码行Select("default=0");更改为以下之一:

如果该属性是default,则使用

DataRow[] dr = dt2.Select("default=0");

如果该属性是int,则使用

DataRow[] dr = dt2.Where(r => r.default == 0);