C# SQL请求-显示条目介于两个日期之间的日期

C# SQL请求-显示条目介于两个日期之间的日期,c#,sql,database,date,C#,Sql,Database,Date,我想返回所有介于开始和结束之间的日期,以及开始和结束本身。由于某些原因,结果仅显示开始和结束之间的日期,而不显示开始 我试着在较大的、较小的和相等的符号之间切换,因为我无法解释错误应该在哪里 这是事件代码: private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e) { string language = System.Globalization.Cultur

我想返回所有介于开始和结束之间的日期,以及开始和结束本身。由于某些原因,结果仅显示开始和结束之间的日期,而不显示开始

我试着在较大的、较小的和相等的符号之间切换,因为我无法解释错误应该在哪里

这是事件代码:


private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            string language = System.Globalization.CultureInfo.CurrentCulture.Name;

            if (!(language == "de-DE"))
            {
                if (language == "es-ES")
                {
                }
                else if (language == "en-GB")
                {
                    DateTime start = monthCalendar1.SelectionStart;
                    DateTime end = monthCalendar1.SelectionEnd;

                    MySqlConnection conn = DBUtils.GetDBConnection();
                    conn.Open();

                    MySqlDataAdapter adapterid;
                    DataTable dtschichten = new DataTable();

                    MySqlCommand feedid = conn.CreateCommand();
                    feedid.CommandText = "SELECT id, datum, atotal, ptotal, total FROM arbeitszeiten WHERE fullname = '" + comboBox1.Text + "' and active = 'NEIN' and datum >= '" + start + "' and datum <= '" + end + "'";
                    adapterid = new MySqlDataAdapter(feedid);
                    adapterid.Fill(dtschichten);

                    dtschichten.Columns["id"].ColumnName = "ID";
                    dtschichten.Columns["datum"].ColumnName = "Shiftdate";
                    dtschichten.Columns["atotal"].ColumnName = "Worktime";
                    dtschichten.Columns["ptotal"].ColumnName = "Breaktime";
                    dtschichten.Columns["total"].ColumnName = "Total time";
                    BindingSource bSourceschichten = new BindingSource();

                    bSourceschichten.DataSource = dtschichten;
                    dataGridView.DataSource = bSourceschichten;
                    adapterid.Update(dtschichten);

                    DataGridViewColumn column = dataGridView.Columns[0];
                    column.Width = 30;

                    conn.Close();
                }
                else
                {
                    MessageBox.Show("Your language setting is currently not supported" + "\n" + "Please change your primary language setting for Windows" + "\n" + "\n" + "The Programm will shut down now !", "Critial Failure", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    this.Close();
                }
            }
            else
            {
                DateTime start = monthCalendar1.SelectionStart;
                DateTime end = monthCalendar1.SelectionEnd;

                MySqlConnection conn = DBUtils.GetDBConnection();
                conn.Open();

                MySqlDataAdapter adapterid;
                DataTable dtschichten = new DataTable();

                MySqlCommand feedid = conn.CreateCommand();
                feedid.CommandText = "SELECT id, datum, atotal, ptotal, total FROM arbeitszeiten WHERE fullname = '" + comboBox1.Text + "' and active = 'NEIN' and datum >= '" + start + "' and datum <= '" + end + "'";
                adapterid = new MySqlDataAdapter(feedid);
                adapterid.Fill(dtschichten);

                dtschichten.Columns["id"].ColumnName = "ID";
                dtschichten.Columns["datum"].ColumnName = "Schichtdatum";
                dtschichten.Columns["atotal"].ColumnName = "Arbeitszeit";
                dtschichten.Columns["ptotal"].ColumnName = "Pausenzeit";
                dtschichten.Columns["total"].ColumnName = "Zeit gesammt";
                BindingSource bSourceschichten = new BindingSource();

                bSourceschichten.DataSource = dtschichten;
                dataGridView.DataSource = bSourceschichten;
                adapterid.Update(dtschichten);

                DataGridViewColumn column = dataGridView.Columns[0];
                column.Width = 30;

                conn.Close();
            }
        }


private void monthCalendar1\u DateSelected(对象发送方,DateRangeEventArgs e)
{
字符串语言=System.Globalization.CultureInfo.CurrentCulture.Name;
如果(!(语言==“de de”))
{
如果(语言==“es”)
{
}
else if(语言==“en GB”)
{
DateTime start=monthCalendar1.SelectionStart;
DateTime end=monthCalendar1.SelectionEnd;
MySqlConnection conn=DBUtils.GetDBConnection();
conn.Open();
MySqlDataAdapter适配器id;
DataTable dtschichten=新DataTable();
MySqlCommand feedid=conn.CreateCommand();

feedid.CommandText=“从arbeitszeiten中选择id、DATAM、atotal、ptotal、total,其中fullname='”+comboBox1.Text+“”和active='NEIN'和DATAM>='“+start+”,DATAM='“+start+”,并且DATAM使用SQL参数来避免SQL注入,并且为了整洁起见在两者之间使用

MySqlCommand feedid = conn.CreateCommand();
feedid.CommandText = "SELECT id, datum, atotal, ptotal, total FROM arbeitszeiten WHERE fullname = @fullname and active = 'NEIN' and datum BETWEEN @start AND @end";
feedid.Parameters.AddWithValue("@fullname", comboBox1.Text);
feedid.Parameters.AddWithValue("@start", start.AddDays(1));
feedid.Parameters.AddWithValue("@end", end);

“显示开始和结束之间的日期,但不显示开始”是什么意思?请阅读SQL参数。您的代码容易受到SQL注入攻击。我希望结果显示在数据网格视图中。例如,如果我选择22.07作为开始,选择25.07作为结束,我将显示23.07、24、25,但不显示22.07条目”您的代码容易受到SQL注入攻击。“好吧……这有什么问题吗?您的表中是否有22.07?;)的条目,否则每个人都可以发送请求,而不是预先定义的请求?feedid.Parameters.AddWithValue(“@start”,start.AddDays(1));这不会让22.07变为23.07吗?kk,你的权利只是让它变为-1天而不是1秒。参数似乎让响应变慢了,是我还是真的?