2011-03-22 89 views
-1

我正在讀取數據表中的一行並嘗試插入到數據庫中。在該行中,某些單元格/列不包含值。所以,我試圖最初檢查該行是否包含值,然後插入到數據庫中。這裏是我的代碼,幫助錯誤

string barcode = null; 
string itemName = null; 
double cost = 0; 
double price = 0; 
double Stock = 0; 
string dept = null; 
double tax = 0; 

barcode = Convert.ToString(dr[0]); 

if (dr[1] != string.Empty || dr[1] != null) 
    itemName = Convert.ToString(dr[1]); 

if (dr[2] != string.Empty || dr[2] != null) 
    cost = Convert.ToDouble(dr[2]); 

if (dr[3] != string.Empty || dr[3] != null) 
    price = Convert.ToDouble(dr[3]); 

Stock = Convert.ToDouble(dr[4]); 

if (dr[5] != string.Empty || dr[5] != null) 
    dept = Convert.ToString(dr[5]); 

if (dr[6] != string.Empty || dr[6] != null) 
    tax = Convert.ToDouble(dr[6]); 

但是,我得到一個錯誤:

possible unintended reference comparison to get a value comparison.

我怎樣才能解決這個問題?

回答

1
if (dr[1] != string.Empty || dr[1] != null) 

將始終返回true,即使該字符串爲空或空值。這是因爲某些東西不能同時是string.Empty和null!您應該使用&&而不是||

3

首先,發佈你的錯誤。

二,String.IsNullOrEmpty()很漂亮win

0
if (dr[1] != string.Empty || dr[1] != null) 

你得到這個錯誤,因爲dr[1]等返回一個對象,而不是字符串 - 你必須將它轉換爲字符串或致電ToString()做一個適當的字符串比較。另外(請參閱@ antisanity的答案),你可能只想要

if (!string.IsNullOrEmpty(dr[1].ToString())) 
+0

謝謝我能解決我的問題。 – 2011-03-22 19:03:04