Member 13803992 Ответов: 1

Столбец "aid" не принадлежит таблице ADMIN_SELECT.


На самом деле я работаю над своим проектом (библиотечная система). На моей домашней странице есть два логина.. один для студента, а другой для библиотекаря. Вход студента работает нормально, но вход библиотекаря-нет. У меня есть колонка помощи в моей таблице. но все же я получаю ошибку "столбец 'aid' не принадлежит таблице ADMIN_SELECT". Я не мог понять почему. Пожалуйста, предложите мне какое-нибудь решение.

Ошибка сервера в приложении'/'.
Столбец "aid" не принадлежит таблице ADMIN_SELECT.
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения Об Исключении: Система.ArgumentException: столбец "aid" не принадлежит таблице ADMIN_SELECT.

Ошибка Источника:
Line 23:             if (ADT.Rows.Count > 0)
Line 24:             {
Line 25:                 Session["aid"] = ADT.Rows[0]["aid"].ToString();
Line 26:                 Session["email"] = txtuname.Text;
Line 27:                 Session["name"] = ADT.Rows[0]["name"].ToString();

трассировка стека:
[ArgumentException: Column 'aid' does not belong to table ADMIN_SELECT.]
   System.Data.DataRow.GetDataColumn(String columnName) +5770283
   System.Data.DataRow.get_Item(String columnName) +13
   _Default.Button1_Click(Object sender, EventArgs e) in c:\Users\nithy\Desktop\LibrarySystem\Default.aspx.cs:25
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9815206
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +204
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639


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

Это код, который я пытаюсь использовать....

if (rdolibrary.Checked == true)
{
    ADT = AAdapter.Select_for_LOGIN(txtuname.Text, txtupass.Text);
    if (ADT.Rows.Count > 0)
    {
        Session["aid"] = ADT.Rows[0]["aid"].ToString();
        Session["email"] = txtuname.Text;
        Session["name"] = ADT.Rows[0]["name"].ToString();
        Response.Redirect("Home.aspx");

    }
    else
    {
        lbl.Text = "Invalid Credential";
    }

Richard Deeming

Я сильно подозреваю, что вы храните пароли в обычном тексте. Хотя это, вероятно, не является большой проблемой для школьного проекта, любой реальный код должен принять более безопасный подход.

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

1 Ответов

Рейтинг:
1

Wendelius

Ошибка совершенно ясно говорит о том, что столбец aid не является частью результирующего набора. Вы написали, что таблица содержит этот столбец, но выбираете ли вы его?

Проверьте выбранную часть и убедитесь, что aid входит в результирующий набор.