台灣最大程式設計社群網站
線上人數
749
 
會員總數:242468
討論主題:187511
歡迎您免費加入會員
討論區列表 >> C# >> C#使用MySqlDataAdapter 的 Fill( ) 取 mysql 的日期欄位會發生錯誤
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C#使用MySqlDataAdapter 的 Fill( ) 取 mysql 的日期欄位會發生錯誤
價值 : 10 QP  點閱數:233 回應數:8

樓主

tenco
門外漢
0 2
103 9
發送站內信

請問各位先進 :
我使用 C# 的 MySqlDataAdapter 中的 Fill() 存取 MySql 中的 [日期時間] 或 [日期] 型態的欄位時會發生錯誤
程式碼如下 :
string m_query = "select cdate, name1, birthday from u6200a ; // cdate 在 MySQL中是 [日期時間] 型態, birthday 是日期型態
MySqlDataAdapter m_adap1 = new MySqlDataAdapter(m__query, m_con);
DataSet m_dataset = this.dataSet1;
m_adap1.Fill(m_dataset, "tmp_00"); // 這一段會發生錯誤 (只要有取 cdate 或 birthday 任一個欄位都會發生錯誤, 單取 name1 則 OK)

錯誤訊息如下 :
MySql.Data.Types.MySqlConversionException: 'Unable to convert MySQL date/time value to System.DateTime'
煩請各位幫忙, 謝謝!!


搜尋相關Tags的文章: [ mysql ] , [ fill ] ,
本篇文章發表於2018-04-04 12:39
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
有可能是DateTime超出了範圍,
你在連線字串裡面加上下面這一段試試看

convert zero datetime=True;
本篇文章回覆於2018-04-04 16:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

tenco
檢舉此回應
感謝小魚, 經測試後 ok 了

只是不大了解 convert zero datetime=True 的意義
另請教, 不知還會有其他欄位型態也有此類似轉換問題嗎 ?
本篇文章回覆於2018-04-04 17:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應
DateTime欄位才會有這個問題
convert zero datetime
顧名思義,就是將Datetime為0的資料轉換成.Net認得的DateTime
建議C#的DateTime預設值設成 0001/01/01 00:00:00 或是 Now
本篇文章回覆於2018-04-04 23:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

tenco
檢舉此回應
根據大大的建議, 想說將 MySQL 中的 DATE 欄位預設為 NOW() 或 CURRENT_DATE 發現都不行
經查 MySQL 好像欄位預設值只能是常數
後來再查了資料後, 將該欄位型態改成 TIMESTAMP , 然後預設值是 CURRENT_TIMESTAMP 可以達成
但是在 C# 中做 WHERE birthday="2018-01-01" 的過濾, 結果因為存在 birthday 中的值含了 [時間] 所以過濾不出來
須將 [日期時間] 中的時間改成 00:00:00 才可以過濾出

想再請教大大所提 [建議C#的DateTime預設值設成 0001/01/01 00:00:00 或是 Now] 是否為在 MySQL 中做預設值
本篇文章回覆於2018-04-06 18:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小魚
檢舉此回應
兩個預設值都可以,看需求
本篇文章回覆於2018-04-29 15:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

tenco
檢舉此回應
謝謝!!
本站的 [已解答] 或 [最佳解答] 不知如何設定? 找了許久未能找著
本篇文章回覆於2018-05-10 22:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

小魚
檢舉此回應
正常來說,在人物的上面會有個接受的按鈕,
不過看來你已經把這個會話串關閉了,
所以不會再出現了。
本篇文章回覆於2018-05-11 00:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

tenco
檢舉此回應
了解謝謝, 下一篇我會注意
本篇文章回覆於2018-05-11 10:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.