none
如何透過DateTimePicker的值去資料庫比對 RRS feed

  • 一般討論

  • 請教各位高手

    目前我自己練習寫了一個程式

    起因是因為我每天都會看一篇英文文章來背單字,最近看到雜誌寫若隔1.2.4.7.14.28.90天這樣來複習單字的話就可以變成長期記憶

    於是想寫一個英文複習程式來告訴我哪天該複習哪幾篇文章的單字

    不過寫的時候出了點問題

    我是用Excel當作我的資料庫

    一開始會去抓DateTimePicker上的時間存入Excel中,幫我製作出一份複習的表格(存入Excel)

    整張表格都是時間,格式為:2016/4/11 在Excel中格式為時間

    而問題來了

    製作出來後,我想去抓裡面的資料時會出現

    準則運算式的資料類型不符合。的錯誤

    我自己判斷是因為:我用string去查詢datetime格式,所以出錯了

       public class QueryStr
            {
                string sqlStr = string.Empty;
    
                #region 取得那天要看的章節
                public string GetChapter(string TheDay)
                {
                    sqlStr = string.Format(@"Select * 
                               From [Chapter$]
                               Where D1 = '{0}' or 
                                     D2 = '{0}' or 
                                     D3 = '{0}' or 
                                     D4 = '{0}' or 
                                     D5 = '{0}' or 
                                     D6 = '{0}' or 
                                     D7 = '{0}' ", TheDay);
                    return sqlStr;
                }
                #endregion
    
                #region 取得看過的章節時間
    
                #endregion
            }

    但我也沒辦法轉成DateTime格式

    DateTime TheDay = DateTime.Parse(dateTimePicker1.Value.Date.ToString("yyyy-MM-dd"));

    這段程式碼轉完以後會有時分秒,沒有辦法轉成 2016/4/11這種格式,

    其實就算轉換完成我覺得放進查詢語法後,依然是用string格式去與Datetime格式做比對,最後還是會出錯..

    有嘗試過存入日期時改存文字格式,可是加了+' 存入不但還是時間格式,而且還多了時分秒,

              for (int i = 0; i < ChapterCount; i++ )
                    {
                        count = 0;
                        oSheet.Cells[DefaultRowStart, 1]   = "'" + dateTimePicker2.Value.AddDays(i);
                        oSheet.Cells[DefaultRowStart, 2]   = "'" + dateTimePicker2.Value.AddDays(Nextday[count++] + i);
                        oSheet.Cells[DefaultRowStart, 3]   = "'" + dateTimePicker2.Value.AddDays(Nextday[count++] + i);
                        oSheet.Cells[DefaultRowStart, 4]   = "'" + dateTimePicker2.Value.AddDays(Nextday[count++] + i);
                        oSheet.Cells[DefaultRowStart, 5]   = "'" + dateTimePicker2.Value.AddDays(Nextday[count++] + i);
                        oSheet.Cells[DefaultRowStart, 6]   = "'" + dateTimePicker2.Value.AddDays(Nextday[count++] + i);
                        oSheet.Cells[DefaultRowStart++, 7] = "'" + dateTimePicker2.Value.AddDays(Nextday[count++] + i);
    
                        oSheet.Columns.AutoFit();
                    }

    想請問各位前輩們我該怎麼做才能透過DateTimePicker的值去跟Excel的資料做比對

    還麻煩前輩們指點,謝謝




    • 已變更類型 Kiki.Yang 2017年4月12日 上午 02:10
    2017年4月11日 上午 07:21

所有回覆

  • Hi HumorA,

    請問您是要拿 DataTimePicker 選到的值,

    傳到後端跟excel的資料比對,

    再拿取excel裡面要讀的章節嗎?


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

     

    Please remember to click Mark as Answer on the post that helps you.
    This can be beneficial to other community members reading the thread.

    2017年4月11日 上午 09:37

  • 對的,如同前輩您所描述的這樣

    不過出錯的問題我凌晨突然解開了....

    我將寫法改成下面的寫法,

    #region 取得那天要看的章節
                public string GetChapter(string TheDay)
                {
                    sqlStr = string.Format(@"Select * 
                               From [Chapter$]
                               Where D1 = #{0}# or 
                                     D2 = #{0}# or 
                                     D3 = #{0}# or 
                                     D4 = #{0}# or 
                                     D5 = #{0}# or 
                                     D6 = #{0}# or 
                                     D7 = #{0}# ", TheDay);
                    return sqlStr;
                }
                #endregion

    用#來抓取時間格式就沒出錯了。

    還是很謝謝您的幫忙

    2017年4月12日 上午 12:32