Member 10379103 Ответов: 1

Ошибка исключения аргумента System.argument


Я получаю эту ошибку:

system.argumentexception UserName parameter does not exist on this report


Вот мой код, в котором я объявляю свою переменную. Я проверил все случаи, и все в правильном порядке. Чего мне не хватает?

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
using System.Security.Principal;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Configuration;
using System.Xml.Linq;
using Microsoft.Reporting.WebForms;

namespace CharityWorks.Membership
{
    public partial class CurrentMembers: System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
             if (!IsPostBack)
            {
                var username = User.Identity.Name;
                var reportname = "Current Members";
                
                List<ReportParameter> reportParams = new List<ReportParameter>();
                reportParams.Add(new ReportParameter("UserName", username));
                reportParams.Add(new ReportParameter("ReportName", reportname));
                ReportViewer1.ServerReport.SetParameters(reportParams);
            }
        }
    }
}


Что я уже пробовал:

Поиск в Google, поиск кода проекта.

Philippe Mori

UserName вероятно, это не определено в самом отчете. Параметры должны совпадать с обеих сторон.

Member 10379103

Я скопировал параметр из отчета, чтобы убедиться, что они совпадают. Я объявляю переменную и устанавливаю ее в user.identity.name...это работало, но прекратилось.

Philippe Mori

Сравните текущий код с кодом, который работал... и убедитесь, что определение отчета не было каким-либо образом изменено.

Member 10379103

Занимаясь этим сейчас...пока ничего не нашел.

Patrice T

Найдите то, что изменилось, мы не можем вам в этом помочь.

Member 10379103

Я просмотрел все страницы и код позади. Как ни странно, некоторые страницы работают, а некоторые отображают сообщение об ошибке. Тот же код, который я опубликовал в своем вопросе, существует на всех страницах.

Member 10379103

Я просмотрел все страницы и код позади. Как ни странно, некоторые страницы работают, а некоторые отображают сообщение об ошибке. Тот же код, который я опубликовал в своем вопросе, существует на всех страницах.

Philippe Mori

Тогда, вероятно, определение отчета отличается для некоторых страниц.

Member 10379103

Как бы я проверил определения отчета? Эти отчеты были созданы другим разработчиком и прекрасно работают на производственном сервере - просто не на сервере разработки; поэтому я не могу изменить их, не затрагивая производственные отчеты. Разработка и производство используют один и тот же Сервер отчетов.

Member 10379103

Я думаю, что могу ответить на свой собственный вопрос - либо просмотреть rdl, написанный предыдущими программистами, либо запросить таблицу каталога. Скорее всего, я добьюсь большего успеха, просматривая и обновляя rdl или обновляя порядок классов в коде, чтобы он соответствовал порядку переменных в rdl.

В любом случае, спасибо за помощь и идеи. Это выглядело так, как будто я пытался сделать все логично - это просто одна из тех унаследованных проблем, которые возникали, когда я пытался получить обновленную, чистую копию для тестирования.

1 Ответов

Рейтинг:
0

Patrice T

Какое слово вы не понимаете в

Цитата:
Параметр UserName не существует в этом отчете
?
Единственная возможность-открыть отчет в редакторе и проверить, какие там параметры.И вы увидите, что параметр не существует или что есть проблема с орфографией.


Member 10379103

Я проверил параметр и даже скопировал его из отчета. Я объявляю переменную и устанавливаю ее в user.identity.name. Это работало, но перестало работать. Что еще я могу проверить?