WinterBanana Ответов: 2

как решить "пропущена директива using или ссылка на сборку?"


это ошибка, которую я получаю. как мне ее решить?

'JEAN.BLL.BllRoom' не содержит определения для 'getRoomDetails', и метод расширения 'getRoomDetails', принимающий первый аргумент типа 'JEAN.BLL.BllRoom', не может быть найден( вы пропускаете директиву using или ссылку на сборку?)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using JEAN.DAL;
using JEAN.BLL;

namespace JEAN
{
    public partial class ViewAvailableRoom : System.Web.UI.Page
    {
        BllRoom bll = new BllRoom();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
                BindRoom();
        }

        private void BindRoom()
        {
            DALRoom myCat = new DALRoom();
            DataSet ds;
            ds = myCat.GetRoom();
            gvRoom.DataSource = ds;
            gvRoom.DataBind();
        }

       
        protected void btnNext_Click(object sender, EventArgs e)
        {
            Response.Redirect("PurchaseOrder.aspx");
        }

        protected void gvRoom_SelectedIndexChanged(object sender, EventArgs e)
        {
            string roomID = gvRoom.SelectedValue.ToString();
            DataSet ds = bll.getRoomDetails(roomID);
            dvRoom.DataSource = ds;
            dvRoom.DataBind();
        }
    }
}

F-ES Sitecore

Происходит ли эта ошибка во время компиляции? Является ли BllRoom классом в одном проекте? Если это так, то ошибка не требует объяснений, вы вызываете метод, который не существует. Как уже предлагалось, проверьте случай или используйте intellisense, чтобы узнать, какие методы доступны.

Если BllRoom-это класс во внешней сборке, то класс в сборке, на которую вы ссылаетесь, не имеет этого метода. Может быть, вы ссылаетесь на более старую версию? Особенно если метод был недавно добавлен.

2 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Добавьте ссылку на сборку и используйте правильные полные имена типов (через using или нет). Выберите пункт "ссылки" в обозревателе решений и откройте контекстное меню. Он покажет "добавить ссылку...".

Вам действительно нужно понимать сборки и ссылки на них, а также пространства имен и имена типов:
Сборки в среде выполнения Common Language Runtime[^],
Программирование с использованием сборок[^],
Как определить полное имя сборки[^],
Расположение Сборки [^],
глобальный кэш сборок[^],
Пространства Имен (Руководство По Программированию На C# )[^],
Memberinfo, тип которого совпадает.Свойство Name (System.Отражение)[^] (Я имею в виду использование System.Type.Name здесь),
Тип.Свойство FullName (System)[^].

—СА


Richard Deeming

Не знаю, кто отклонил ваш ответ- это совершенно разумный совет.

Однако в этом случае ошибка заключается в том, что метод не существует. Комментарий в сообщении об ошибке отсутствует using директива или ссылка на сборку-это отвлекающий маневр.

Sergey Alexandrovich Kryukov

- Спасибо, Ричард.
Спасибо за вашу записку, Я согласен. (В то время я не заметил вашего решения.)

Похоже, кто-то пытается снизить мой счет. Это несколько (в настоящее время 3-6) голосов подряд, в течение одной и той же минуты. Конечно, это вряд ли может быть основано на качестве ответа. Похоже, что он выбран, чтобы компенсировать положительный недавний прирост баллов. Забавный. Как будто я слишком заботился о баллах... Но само поведение вызывает беспокойство.

—СА

Рейтинг:
0

Richard Deeming

Как говорится в ошибке, класс BllRoom не содержит вызываемого метода getRoomDetails.

Там тоже нет метод расширения[^] называемый getRoomDetails это может быть вызвано на экземпляре BllRoom класс.

Вы не можете вызвать метод для объекта, если этот метод не существует!

NB: Не забывайте, что C# чувствителен к регистру. Вы уверены, что метод не вызывается GetRoomDetails, с заглавной буквой "Г" в начале?


Sergey Alexandrovich Kryukov

5ed, кстати. :-)
—СА