DataRow 'Ссылка на объект не установлена ​​для экземпляра объекта.' - PullRequest
0 голосов
/ 19 сентября 2019

Я некоторое время работал с ASP.NET WebForms и решил попробовать преобразовать некоторые из моих работ в ASP.NET MVC.

Теперь я не могу понять, почемумой DataRow равен null при наличии результатов / строк.

Вот код и ошибка

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

my 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 голосов
/ 19 сентября 2019

Select("default=0"); выглядит неправильно.В зависимости от типа свойства default попробуйте изменить следующую строку кода DataRow[] dr = dt2.Select("default=0"); на одну из следующих:

Если свойство является int, используйте

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

Если свойство является bool, тогда используйте

DataRow[] dr = dt2.Where(r => r.default == false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...