繁体   English   中英

C# - DataGridView 和 DateTimePicker 的问题

[英]C# - Problem with DataGridView and DateTimePicker

我需要帮助来理解我错在哪里,我正在使用 DataGridView 来允许在表单中显示表格,并且我想插入选择具有两个 DateTimePicker 字段的日期范围的功能并启动 SELECT 语句“CERCA”按钮,但是,当我启动程序并尝试在 DataGridView 字段中进行选择时,即使我设置了两个 SelectCommand 指令,也只会出现一个空行。 我不明白我错在哪里。

    public DataGridView_Maria()
    {
        InitializeComponent();
    }
    SqlConnection conn = new SqlConnection("Data Source=192.168.0.51;Initial 
    Catalog=Archivio_Stipendi;User ID=sa;Password=NI2000ma;");

    private void CERCA_Button_Click(object sender, EventArgs e)
    {
        conn.Open();
        'SqlDataAdapter sdf = new SqlDataAdapter(@"SELECT GIORNO, RIPOSO, ORE_LAVORO, COMPENSO_LAVORO FROM [dbo].[MARIA_VARAVALLO] WHERE GIORNO BETWEEN '@DA_GIORNO' AND '@A_GIORNO';", conn);'

        sdf.SelectCommand.Parameters.AddWithValue("@DA_GIORNO", Da_Mar_DTP.Text);
        sdf.SelectCommand.Parameters.AddWithValue("@A_GIORNO", A_Mar_DTP.Text);

        DataTable sd = new DataTable();
        sdf.Fill(sd);
        DataGridView_Mar.DataSource = sd;

        conn.Close();
    }
}

我刚刚根据您的建议进行了更改,并通过直接从查询设置日期范围,DataGridView 工作,点击“CERCA”按钮显示设置的日期。 极好的! 但我仍然不知道为什么 DataTimePicker 会给他带来问题......

这是修改后的代码:

    public DataGridView_Maria()
    {
        InitializeComponent();
    }
    SqlConnection conn = new SqlConnection("Data Source=192.168.0.51;Initial Catalog=Archivio_Stipendi;User ID=sa;Password=NI2000ma;");
    private void CERCA_Button_Click(object sender, EventArgs e)
    {
        conn.Open();
        SqlDataAdapter sdf = new SqlDataAdapter(@"SELECT GIORNO, RIPOSO, ORE_LAVORO, COMPENSO_LAVORO FROM [dbo].[MARIA_VARAVALLO] WHERE GIORNO BETWEEN 'Lunedì 09 Marzo 2020' AND 'Lunedì 09 Marzo 2020';", conn);
        DataTable sd = new DataTable();
        sdf.Fill(sd);
        DataGridView_Mar.DataSource = sd;

        conn.Close();
    }
}

}

尝试使用Value属性,而不是DateTimePicker (s) 的Text属性,如下所示:

sdf.SelectCommand.Parameters.AddWithValue("@DA_GIORNO", Da_Mar_DTP.Value);
sdf.SelectCommand.Parameters.AddWithValue("@A_GIORNO", A_Mar_DTP.Value);

编辑...我认为您还需要删除查询中参数周围的' (单引号):

WHERE GIORNO BETWEEN '@DA_GIORNO' AND '@A_GIORNO'

……变成:

WHERE GIORNO BETWEEN @DA_GIORNO AND @A_GIORNO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM