Выберите оператор в SQL Server - PullRequest
       0

Выберите оператор в SQL Server

0 голосов
/ 29 сентября 2018

Я пытаюсь отобразить индивидуальные записи о посещаемости между двумя датами.Когда учителя выбирают две даты, записи будут отображаться в элементе управления GridView.Однако у меня есть проблема с тем, какие записи посещаемости других студентов также отображаются.Я не могу показать только записи посещаемости студентов.

Это мой код C #, когда учитель нажал на кнопку просмотра:

protected void ButtonView_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "Data Source=DESKTOP-H7KQUT1;Initial Catalog=SAOS;Integrated Security=True";
    con.Open();

    string query1 = "SELECT * FROM attendance WHERE Date between '" + datepicker.Text + "'AND'" + datepicker1.Text + "'";
    SqlCommand sqlcomm = new SqlCommand(query1, con);

    SqlDataAdapter sda = new SqlDataAdapter(sqlcomm);
    DataTable dt = new DataTable();
    sda.Fill(dt);

    SqlDataReader sdr = sqlcomm.ExecuteReader();

    if (sdr.Read())
    {
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
    else
    {
        Label7.Text = "No records found!!";
    }

    con.Close();
}

Проблема здесь:

 string query1 = "SELECT * FROM attendance WHERE Date between '" + datepicker.Text + "'AND'" + datepicker1.Text + "'";

У меня есть столбец с именем Student_IDв качестве внешнего ключа в посещаемости таблицы.

1 Ответ

0 голосов
/ 29 сентября 2018
string query1 = "SELECT * FROM attendance WHERE Date between @startDate AND @endDate and Student_ID = @studentId";

SqlCommand sqlcomm = new SqlCommand(query1, con);
sqlcomm.Parameters.Add("@startDate", SqlDbType.Date).Value = datepicker.Text;
sqlcomm.Parameters.Add("@endDate", SqlDbType.Date).Value = datepicker1.Text;
sqlcomm.Parameters.Add("@studentId", SqlDbType.Int).Value = 100;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...