Динамически генерировать столбцы в RDLC

Я пытаюсь создать отчет RDLC в ASP.NET, где столбцы моего набора данных будут динамическими и будут определены только во время выполнения.

Я сделал функцию, которая возвращает DataTable, и выбрав эту функцию в мастере отчетов RDLC,Я могу сгенерировать свой отчет успешно.

    public DataTable GetTable()
    {
        // Here we create a DataTable with four columns.
        DataTable table = new DataTable();
        table.Columns.Add("Dosage", typeof(int));
        table.Columns.Add("Drug", typeof(string));
        table.Columns.Add("Patient", typeof(string));
        table.Columns.Add("Date", typeof(DateTime));
        table.Columns.Add("testColumn", typeof(DateTime));

        // Here we add five DataRows.
        table.Rows.Add(25, "Indocin", "David", DateTime.Now);
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
        return table;
    }

Но если я внесу небольшое изменение в функцию, чтобы моя таблица данных стала действительно динамичной, заполнив столбцы из базы данных, моя функция не отобразится в мастере отчетов.

Это моя измененная функция

    public DataTable GetTable2()
    {
        // Here we create a DataTable with four columns.
        DataTable table = new DataTable();
        table.Columns.Add("Dosage", typeof(int));
        table.Columns.Add("Drug", typeof(string));
        table.Columns.Add("Patient", typeof(string));
        table.Columns.Add("Date", typeof(DateTime));
        table.Columns.Add("testColumn", typeof(DateTime));


        SqlConnection connection = new SqlConnection();
        connection = Connection.getConnection();
        connection.Open();


        string tableName = "";

        tableName += "Subject";


        string Query = "select * from " + tableName + " where Status = 0;";


        SqlDataAdapter da = new SqlDataAdapter(Query, connection);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataRowCollection collection = ds.Tables[0].Rows;
        foreach (DataRow row in collection)
        {

            // Here we add five DataRows.
            table.Rows.Add(25, "Indocin", "David", DateTime.Now);
            table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
            table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
            table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
            table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

        }


        connection.Close();

        return table;
    }

Видите ли, единственное изменение, которое я внес в функцию, - это запрос из базы данных и создание столбцов набора данных отчета в цикле, который выполняет итерацию по данным базы данных. Но из-за этого изменения моя функция не отображается в мастере отчетов. Если я опущу код, он появится снова.

Я могу использовать эту функцию для создания GridView, но проблема в отчетах RDLC.

Моя цель состоит в том, чтобы создать отчет с данными, используя результаты базы данных. Пожалуйста, помогите мне.

Ответы на вопрос(2)

Ваш ответ на вопрос