2011-08-08 79 views
3

我是一個發展中國家與我使用ASP.NET(C#)傳遞給Oracle存儲過程不同的文本boxs應用程序傳遞空的文本框的數據作爲參數傳遞給存儲過程在Oracle。對於每個文本框,都有一個類文件中的屬性。當我傳遞空文本框時,它會拋出一個錯誤。這是因爲oracle中的varchar2字段不接受「null」。如何使用.NET

 Private string _fristName; 

     public string FirstName 
     { 
      get { return _fristName; } 
      set { _fristName= value; } 
     } 

這是製作_fristName爲的String.Empty或 「」 最佳做法?

+0

最好使用'string.Empty'而不是'''''。 .Net 2.0之後,它們完全一樣。但是,就可讀性而言,大多數程序員會同意'string.Empty'更易於閱讀。 –

回答

5

在您的類的初始化,只是你的私有變量設置爲String.Empty默認值。

Private string _fristName = String.Empty; 

獲取它將返回一個空字符串,而不是null;設置它會將值更改爲任何值。

你也可以這樣做:

Private string _fristName; 

    public string FirstName 
    { 
     get { return _fristName ?? String.Empty; } 
     set { _fristName= value; } 
    } 

希望這有助於!

編輯:在評論中注意到,從@Marc建議。將比較更改爲使用??運算符。謝謝@Marc!

+0

或者更簡潔'get {return _firstName? 「」; }' – Marc

+0

哦,是的 - 我總是忘記'??'。謝謝! –

0

之前在存儲過程中設置參數的值,檢查空。這可以放在一個共同的功能。注意這是針對sql服務器的,但是可以爲Oracle完成類似的功能。另外,如果列不能取null,那麼可以使用默認值(字符串爲String.Empty等),而不是DBNull.Value。

IDbDataParameter parameter = new SqlParameter(ParameterName, DatabaseFieldType); 

parameter.Value = (value== null ? DBNull.Value : value);