c#
  • sql-server
  • winforms
  • visual-studio-2010
  • 2014-02-12 158 views 0 likes 
    0

    我已經採取了C#winform中的datetimePicker。我想在選定的日期顯示數據。基本上,我所做的是,需要幫助關於datetimepicker

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e) 
    { 
    i = 0; 
    cmd = "Select * from CourierReturn where ReturnDate = '" + dateTimePicker1.Value.Date+"'"; 
    sda = new SqlDataAdapter(cmd, con); 
    sda.Fill(dst,"CourierReturn"); 
    con.Open(); 
    maxr = dst.Tables["CourierReturn"].Rows.Count; 
    navigate(); 
    } 
    

    而且在導航()

    private void navigate() 
        { 
         textBox1.Text = dst.Tables[0].Rows[i]["CourierNo"].ToString(); 
         textBox2.Text = dst.Tables[0].Rows[i]["BranchNo"].ToString(); 
         textBox3.Text = dst.Tables[0].Rows[i]["ReturnDate"].ToString(); 
         textBox4.Text = dst.Tables[0].Rows[i]["Reason"].ToString(); 
        } 
    

    我已經做了一切之上這種編碼。

    SqlConnection con = new SqlConnection(@"Data Source=.\Aroona;Initial Catalog=ACSDatabase;Integrated Security=True"); 
        SqlDataAdapter sda; 
        DataSet dst = new DataSet(); 
        string cmd; 
        int maxr, i; 
    

    並且在下一個按鈕中,存在下一個編碼,以及前一個,第一個和最後一個編碼。

    當我在程序運行時從datetimepicker更改日期時,它不會更改文本框中的值。我試過這個。 dst.Clear();但它不工作,它的方式。請幫幫我。

    +0

    您是否嘗試過在導航設置斷點()方法,以確保當您更改日期是實際執行?另外,您在調用填充後打開數據連接。如果要保持連接處於打開狀態,則應將其移至填充之前。如果您不需要保持打開狀態,請將其完全移除,並且填充方法將自動打開並自動關閉連接。 – Stainy

    回答

    0

    嘗試:

    cmd = "SELECT * FROM CourierReturn WHERE cast(ReturnDate as date) = '" + dateTimePicker1.Value.Date.ToString("yyyyMMdd")+"'"; 
    
    +0

    它也行不通:-(但你能告訴我你爲什麼要這樣做(ReturnDate as date)? – Aroona

    +0

    ,因爲如果type是datetime,日期包含小時,分鐘,秒。 date只包含年月日 把一個斷點放到這一行「sda = new SqlDataAdapter(cmd,con);」並看到cmd的值,並粘貼到這裏 – LuisR9

    +0

    我找到了解決方法!其實我沒有關閉最後的連接,但是這樣做後,只要datetimepicker的值發生變化,它就必須先清除數據集,然後它才能正常工作。順便說一下,感謝您的幫助。 – Aroona

    相關問題