![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 培根 ![]()
![]() |
我目前在做日期檢查,基於一些原因我的資料庫有些欄位是空白值有些是Null 我的程式碼為 基本上都重複的,所以我結取一段 我已經確定是 if 判斷式的問題 我試了好久,它都會說 無法處理Null 資料的問題出現 請問我要怎麼更改我的判斷式??
搜尋相關Tags的文章:
[ VB.NET MySQL的 空白值跟Null處理 ] ,
本篇文章發表於2018-04-24 16:58 |
1樓
不錯的參考
P陳 ![]() |
試試這個吧!!
If IsDate(myReader.GetString("日期")) = True then if 5 = DateDiff(DateInterval.Day, CDate(date()), CDate(myReader.GetString("日期"))) Then MsgBox("還有5天過期") end if end if
本篇文章回覆於2018-04-24 20:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
培根 ![]() |
謝謝陳P的回答
但是它一樣會說 資料為Null 的錯誤出現
本篇文章回覆於2018-04-25 08:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
培根 ![]() |
myReader.GetString("日期") Is Nothing
IsDate(myReader.GetString("日期")) = True IsDBNull(myReader.GetString("日期")) = True 以上都不能 我還在找方法.....
本篇文章回覆於2018-04-25 09:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
培根 ![]() |
我研究出來的結果:
如果我把他判定的結果變成字串 If IsDate(myReader.GetString("線材預定交期")).ToString() = True Then 那我所執行的結果是成功的 不知道大大們還有沒有其他建議??
本篇文章回覆於2018-04-25 09:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
不錯的參考
小羊窒息 ![]() ![]() |
如果重點是要判斷null的話,這2篇大概是你需要的吧...
----- https://stackoverflow.com/questions/4739641/how-to-check-for-null-in-mysqldatareader-by-the-columns-name 欄位名稱轉換成欄位順序(如果你只抓1個欄位, 就不需要GetOrdinal, 直接看下一個網址即可) ----- https://stackoverflow.com/questions/16167056/vb-net-read-null-value-from-database 直接寫 If myReader.IsDBNull(0) Then ======================= 如果只是要判定是不是日期,你自己在4樓貼的方式就可以解決了... 但如果你在4樓寫的方式沒問題的話, 那你一開始的這一行不太可能發生錯誤的 If IsDate(myReader.GetString("日期").ToString()) = True AndAlso 5 = DateDiff(DateInterval.Day, CDate(Time), CDate(myReader.GetString("日期"))) Then 因為IsDate(myReader.GetString("日期").ToString())不成立,所以AndAlso後面的部份並不會被執行,(如果你是寫 and 的話,會出錯是應該的,但你寫的是andalso) 而CDate(myReader.GetString("日期")) 這一行沒有被執行的話,要如何發生 null無法換成日期的問題呢... -----
本篇文章回覆於2018-04-25 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
在C# 我都會判斷
VB請自己轉換吧... 從你PO出來的部份, 問題應該出在 myReader.GetString("日期") 是 null 所以不能使用ToString方法, 會回傳錯誤, 如果照你寫的方式, 應該判斷 myReader.GetString("日期") != null 就可以了
本篇文章回覆於2018-04-25 12:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
作者回應
培根 ![]() |
我也是覺得滿奇怪的
如果在VB上執行的話都沒有問題 可是會出exe檔,就會有問題跑出來
本篇文章回覆於2018-04-25 14:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
培根 ![]() |
我目前算是 快瘋掉的情況
我已經搞不清楚到底是 我程式的問題 台式mySQL的問題了QAQ
本篇文章回覆於2018-04-25 16:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓
作者回應
培根 ![]() |
我有式過 小羊窒息 的程式碼 If myReader.IsDBNull(0) Then
它說 "日期" 至類型Integer轉換是無效的 小魚的可以 If DBNull.Value.Equals(myReader("線材預定交期")) <> True Then 謝謝您們:) 我會再試試看 有問題我會再提問 感恩:)
本篇文章回覆於2018-04-25 17:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
最有價值解答
小魚 ![]() |
之前處理很多次Null的問題,
不過如果是自己建的資料庫, 基本上我會設成 Not Null並且給預設值, 就不需要去處理Null的問題了.
本篇文章回覆於2018-04-26 12:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |