none
請教NoNullAllowedException(VB2005) RRS feed

  • 問題

  • 從資料來源拉入三個欄位至Form1

    其中有個欄位為主索引,不允許NULL

    按一下BindingNavigator1的BindingNavigatorAddNewItem

    此時會增加一筆空資料

    不輸入任何資料直接按一下BindingNavigatorMovePreviousItem

    會出現NoNullAllowedException的錯誤(資料行'EmployeeID'不允許Null)

    請教該如何處理

    謝謝

     

     

    2007年3月15日 上午 10:49

解答

  • Dear DAB_LEO,

    這個問題目前被定義為一個產品設計的問題,您可以參考以下KB,

    You receive a "Column 'Column Name' does not allow nulls" message when you add a record or when you move through records in a database by using a data form

    http://support.microsoft.com/kb/833902/en-us

     

    比較好的解決方法如果Gavin所言,在BindingNavigator1_Click事件來檢查是否有輸入值。
    您不只需要對Primary Key的欄位做檢查,亦必須對Not Allowed Null的欄位檢查。


    Terry Lin

    微軟技術支援處


     

     

    2007年3月22日 上午 09:17

所有回覆

  • 您好:

          建議您把主索引的欄位在資料表設計時,設計成自動編號的方式。在輸入資料時就那個欄位就不用輸入了。

    2007年3月15日 下午 04:03
  • 謝謝 Gavin Lai

    因為需求上的需要

    該欄位必須給使用者自己輸入

    不能自動編號

    請問還有其他方法嗎

    謝謝

     

    2007年3月15日 下午 11:57
  • 您好:

          建議您可以在加強在Client欄位的檢查,就是使用者一定要輸入這個欄位,如果沒有就出現警告提示視窗。還有要檢查輸入的值有沒有重複。有重複的話,新增也會失敗。

    2007年3月16日 上午 12:15
  • 謝謝Gavin Lai

    因為按了BindingNavigatorAddNewItem後

    便直接按了BindingNavigatorMovePreviousItem

    TextBox還未取得焦點

    所以不會觸發Validating事件

    不知要在哪裡檢查

    謝謝

     

    2007年3月17日 上午 02:30
  • 您好:

            建議您在BindingNavigator1_Click事件來檢查是否有輸入值。

    2007年3月17日 上午 05:40
  • Dear DAB_LEO,

    這個問題目前被定義為一個產品設計的問題,您可以參考以下KB,

    You receive a "Column 'Column Name' does not allow nulls" message when you add a record or when you move through records in a database by using a data form

    http://support.microsoft.com/kb/833902/en-us

     

    比較好的解決方法如果Gavin所言,在BindingNavigator1_Click事件來檢查是否有輸入值。
    您不只需要對Primary Key的欄位做檢查,亦必須對Not Allowed Null的欄位檢查。


    Terry Lin

    微軟技術支援處


     

     

    2007年3月22日 上午 09:17