簡體   English   中英

DateTimePicker c# 僅適用於月份

[英]DateTimePicker c# only works with Months

請盡早提供幫助兩個 Datetimepickers 並在數據網格中顯示兩個日期之間有一些展覽但它沒有正確顯示我,我什至無法解釋什么是錯的

private void button3_Click(object sender, EventArgs e)
{
string period = "SELECT* FROM vistavka WHERE Date BETWEEN '" + dateTimePicker1.Value.ToString() + "' AND '" + dateTimePicker2.Value.ToString() + "'";

LoadData(period);
dataGridView2.Columns[0].Visible = false;
/*dataGridView2.Columns[1].Visible = false*/;
dataGridView2.AllowUserToAddRows = false;
button1.Enabled = true;
}

這樣對嗎? 我希望它像 2020 年 11 月 12 日到 2020 年 12 月 21 日之間的事件一樣顯示

我想你可以在這里使用這個問題的答案。

基本上,您只需要提供正確的格式:

string period = "SELECT* FROM vistavka WHERE Date BETWEEN '" + dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss.fff") + "' AND '" + dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'";

對於獎勵積分,您還可以切換到使用字符串插值以使其更具可讀性。

string period = $"SELECT* FROM vistavka WHERE Date BETWEEN '{dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss.fff")} ' AND '{dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss.fff")} '";

更新:

  • 請查看為什么這樣做是一個安全問題。
  • 然后在這里了解 SQL 參數。
  • 最后你可以看到這個關於如何做日期參數的答案。 基本上,您不必將 C# 日期時間轉換為字符串,只需將其傳遞給 SQL。 C# 已經為此提供了機制,並且有充分的理由,正如您將在這些鏈接中看到的那樣。

使用日期到字符串轉換是錯誤的

"SELECT* FROM vistavka WHERE Date BETWEEN '" + dateTimePicker1.Value.ToString() + "' AND '" + dateTimePicker2.Value.ToString() + "'";

ToString()格式取決於文化,不應使用

You have to pass SQL query with parameters and parameter values (as DateTime objects) to convert date from DateTime by SQL client API to the parameter value format used by your SQL server.

在此處找到 MS SQL 樣品

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM