帮助解决错误

时间:2011-03-22 18:14:39

标签: c#

我正在从数据表中读取一行并尝试插入数据库。在行中,某些单元格/列不包含值。所以,我试图初步检查该行是否包含值,然后插入数据库。这是我的代码,

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]);

但是,我收到了一个错误:

  

可能的非预期参考比较以获得值比较。

如何更正此问题?

3 个答案:

答案 0 :(得分:3)

首先,发布您的错误。

其次,String.IsNullOrEmpty()非常 win

答案 1 :(得分:1)

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

将始终返回true,即使字符串为空或为空。这是因为某些东西不能同时是string.Empty和null!您应该使用&&代替||

答案 2 :(得分:0)

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

您收到此错误是因为dr[1]等返回一个对象而不是字符串 - 您必须将其强制转换为字符串或调用ToString()进行正确的字符串比较。另外(参见@ antisanity的回答)你可能只想要

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