Проверьте значение ячейки с датой c # - PullRequest
0 голосов
/ 24 октября 2019

Я пытался использовать другие ответы на подобные вопросы, и, похоже, это не работает, я должен что-то упустить.

Вот код, который я придумал, основываясь на других ответах:

** указывают места, где Visual Studio показывает проблемы в коде -

protected void submit_click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["HMTDBCS"].ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand("select * from Staff where username =@username and password=@password", con);
    cmd.Parameters.AddWithValue("@username", username.Text);
    cmd.Parameters.AddWithValue("@password", password.Text);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    int i = dt.Rows.Count;
    string accesslevel = *dt.Rows[i][6] *;
    for (int* i* = 0; i < dt.Rows.Count - 1; i++)
                {
        if (*accesslevel == 1 *)
        {
            // Redirect to Access Level 1 landing page
        }
        else if (*accesslevel == 2 *)
        {
            // Redirest to Access Level 2 landing page
        }
        else if (*accesslevel == 3 *)
        {
            // Redirect to Access Level 3 landing page
        }
        else
        {
            lblErrorMessage.Visible = true;
        }
    }
}

Ответы [ 2 ]

1 голос
/ 24 октября 2019

После инициализации DataTable вам необходимо вызвать da.fill(dt), чтобы добавить прочитанные данные в таблицу данных.

Вы также определили i дважды. вам нужно назвать новую переменную в вашем цикле for.

0 голосов
/ 24 октября 2019

Вам не хватает одной строки здесь. На самом деле вы не заполняете данные с помощью SqlDataAdapter, используйте приведенный ниже код и попробуйте, пожалуйста.

 SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        int i = dt.Rows.Count;
...