C# 使用dateTimePicker搜索一周中的所有天

C# 使用dateTimePicker搜索一周中的所有天,c#,winforms,date,sql-server-ce,datepart,C#,Winforms,Date,Sql Server Ce,Datepart,我想检索一周中的所有天,选择给定周中的任何一天 示例:想要检索2016年7月31日(dd/MM/yyyy)到2016年8月6日(dd/MM/yyyy) 通过选择一周中的任何一天来显示眼压 可能吗 我当前的代码: private void AutoLoadCalendar() { string constringF = @"Data Source=|DataDirectory|\cadastramentodb.sdf;Persist Security In

我想检索一周中的所有天,选择给定周中的任何一天

示例:想要检索2016年7月31日(dd/MM/yyyy)到2016年8月6日(dd/MM/yyyy)

通过选择一周中的任何一天来显示眼压

可能吗

我当前的代码:

private void AutoLoadCalendar()
        {

            string constringF = @"Data Source=|DataDirectory|\cadastramentodb.sdf;Persist Security Info=False";
            string QueryF = "select * from Funcionarios  where (status = N'Ativo') and datepart(year, datafimcontrato) = @ano and datepart(month, datafimcontrato) = @mes ";
            SqlCeConnection conDataBaseF = new SqlCeConnection(constringF);
            SqlCeCommand cmdDataBaseF = new SqlCeCommand(QueryF, conDataBaseF);
            cmdDataBaseF.Parameters.Add("@mes", SqlDbType.Int).Value = Convert.ToInt32(monthCalendar1.SelectionStart.Month);
            cmdDataBaseF.Parameters.Add("@ano", SqlDbType.Int).Value = Convert.ToInt32(monthCalendar1.SelectionStart.Year);
            try
            {


                SqlCeDataAdapter sda = new SqlCeDataAdapter();
                sda.SelectCommand = cmdDataBaseF;


                System.Data.DataTable dbdatasetF = new System.Data.DataTable();
                sda.Fill(dbdatasetF);
                BindingSource bSourceF = new BindingSource();

                bSourceF.DataSource = dbdatasetF;
                dataGridView1.DataSource = bSourceF;
                sda.Update(dbdatasetF);
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
致意

您可以使用DATEPART函数知道一周中的哪一天有您选择的日期,并且知道该数字很容易解决您的问题

试试这个:

private void AutoLoadCalendar()
    {

        string constringF = @"Data Source=|DataDirectory|\cadastramentodb.sdf;Persist Security Info=False";
        string QueryF = 
            "DECLARE @DiaSemana AS INT " +
            "SET @DiaSemana=DATEPART(DW,@Fecha) " +
            " " +
            "SELECT * " +
            "FROM Funcionarios " +
            "WHERE [status] = N'Ativo' AND datafimcontrato >= DATEADD(DD,@DiaSemana*-1,@Fecha) AND datafimcontrato <= DATEADD(DD,7-@DiaSemana,@Fecha) ";
        SqlCeConnection conDataBaseF = new SqlCeConnection(constringF);
        SqlCeCommand cmdDataBaseF = new SqlCeCommand(QueryF, conDataBaseF);
        cmdDataBaseF.Parameters.Add("@Fecha", monthCalendar1.Value);
        try
        {
            SqlCeDataAdapter sda = new SqlCeDataAdapter();
            sda.SelectCommand = cmdDataBaseF;

            System.Data.DataTable dbdatasetF = new System.Data.DataTable();
            sda.Fill(dbdatasetF);
            BindingSource bSourceF = new BindingSource();

            bSourceF.DataSource = dbdatasetF;
            dataGridView1.DataSource = bSourceF;
            sda.Update(dbdatasetF);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
private void AutoLoadCalendar()
{
字符串constringF=@“数据源=|数据目录| \cadastramentodb.sdf;持久安全信息=False”;
字符串查询f=
“将@DiaSemana声明为INT”+
SET@DiaSemana=DATEPART(DW,@Fecha)+
" " +
“选择*”+
“来自Functionarios”+
“其中[状态]=N'Ativo'和datafimcontrato>=DATEADD(DD,@DiaSemana*-1,@Fecha)和datafimcontrato致以最诚挚的问候

您可以使用DATEPART函数知道一周中的哪一天有您选择的日期,并且知道该数字很容易解决您的问题

试试这个:

private void AutoLoadCalendar()
    {

        string constringF = @"Data Source=|DataDirectory|\cadastramentodb.sdf;Persist Security Info=False";
        string QueryF = 
            "DECLARE @DiaSemana AS INT " +
            "SET @DiaSemana=DATEPART(DW,@Fecha) " +
            " " +
            "SELECT * " +
            "FROM Funcionarios " +
            "WHERE [status] = N'Ativo' AND datafimcontrato >= DATEADD(DD,@DiaSemana*-1,@Fecha) AND datafimcontrato <= DATEADD(DD,7-@DiaSemana,@Fecha) ";
        SqlCeConnection conDataBaseF = new SqlCeConnection(constringF);
        SqlCeCommand cmdDataBaseF = new SqlCeCommand(QueryF, conDataBaseF);
        cmdDataBaseF.Parameters.Add("@Fecha", monthCalendar1.Value);
        try
        {
            SqlCeDataAdapter sda = new SqlCeDataAdapter();
            sda.SelectCommand = cmdDataBaseF;

            System.Data.DataTable dbdatasetF = new System.Data.DataTable();
            sda.Fill(dbdatasetF);
            BindingSource bSourceF = new BindingSource();

            bSourceF.DataSource = dbdatasetF;
            dataGridView1.DataSource = bSourceF;
            sda.Update(dbdatasetF);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
private void AutoLoadCalendar()
{
字符串constringF=@“数据源=|数据目录| \cadastramentodb.sdf;持久安全信息=False”;
字符串查询f=
“将@DiaSemana声明为INT”+
SET@DiaSemana=DATEPART(DW,@Fecha)+
" " +
“选择*”+
“来自Functionarios”+

其中[status]=N'Ativo,datafimcontrato>=DATEADD(DD,@DiaSemana*-1,@Fecha)还有datafimcontrato,您在代码中处理的日期在哪里?或者我应该说您在代码段中尝试在哪里执行此操作?dateparts和monthcalendarPut解决方案在下面的答案块中,而不是在问题中。您在代码中处理的日期在哪里?或者我应该说您在代码段中尝试在哪里执行此操作?dateparts和MonthCalendar将解决方案放在下面的答案栏中,而不是问题中。