none
請問LINQ TO SQL RRS feed

  • 問題

  • 各位前輩

    不好意思,我又來請教

    我要將dtnewohb及oldprice這二個datatable做LEFT JOIN發生錯誤

    值不能為NULL?

    應該是加入 oeb13 = oldogb.Field<Single>("oeb13")  這行發生錯誤,但我一直不了解錯在哪裡

    煩請幫忙解答,謝謝


    

    2012年9月21日 上午 08:07

解答

  • oeb13 這個欄位有資料列是 NULL。

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年9月21日 上午 08:53
    版主

所有回覆

  • oeb13 這個欄位有資料列是 NULL。

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年9月21日 上午 08:53
    版主
  • 您可以參考這篇文件的做法:Null Values and Joins

    2012年9月21日 上午 09:10
  • oeb13 這個欄位有資料列是 NULL。

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    您好,謝謝

    我有google了很多C# linq left join null,還是無法解決

    也使用了DefaultIfEmpty()     

    現在連select一個欄位都會出現錯誤,煩請各位前輩協助一下,謝謝

    2012年9月24日 上午 05:15
  • 你好像不了解 DefaultIfEmpty() 是做什麼的 ...

    http://msdn.microsoft.com/zh-tw/library/system.linq.enumerable.defaultifempty(v=vs.90).aspx

    你可以下 where 先濾掉有 null 的資料列,再用 select new。


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年9月24日 上午 05:40
    版主
  • 你好像不了解 DefaultIfEmpty() 是做什麼的 ...

    http://msdn.microsoft.com/zh-tw/library/system.linq.enumerable.defaultifempty(v=vs.90).aspx

    你可以下 where 先濾掉有 null 的資料列,再用 select new。


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    謝謝您

    我下where 先濾掉有null的資料列,但仍發生不能為null的錯誤訊息

    我要將圖2上半部的dtnewohb TataTable與下半部的oldprice TataTable

    以OHB31、OGB01做LEFT JOIN

    主要SELECT的欄位除了dtnewohb TataTable外以及oldprice TataTable「oeb13」

    目前感覺一直卡住,真不好意思

    是否可以請前輩再指導一下,謝謝

    

    2012年9月25日 上午 08:24
  • 你可以試試 where (!oldgb.IsNull("oeb13")) or where oldgb.IsNull("oeb13") == false

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年9月25日 上午 09:09
    版主
  • 你可以試試 where (!oldgb.IsNull("oeb13")) or where oldgb.IsNull("oeb13") == false

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    謝謝您

    但我試了where (!oldogb.IsNull("oeb13")) || (oldogb.IsNull("oeb13") == false) 

    仍出現圖1錯誤訊息,「並未將物件參考設定為物件的執行個體」

    debugger dtoldogb是有東西的,(圖2)

    但為什麼oldogb是null ?(圖1)

    可否請前輩再幫忙看一下,謝謝

    2012年9月26日 上午 06:20