2012-03-22 82 views
0

,我在下面的查询得到一个错误:错误转换数据类型为varchar到数字

insert into ProductStone (Pieces, Weight, CutChg, LotID, 
          CatID, OrnID, StoneID, ShadeID, CutID, ChgType, SetID) 
values ( '10', '0.3', 'null', '601', 'H', '101', 
      'S', '0', '13', 'null', '4'). 

问题是,我创造我在运行时查询。请告诉我如何在运行时检查值是否为空。

我用于在运行时构建动态查询的代码部分如下。我改变了我之前的代码,但在某些情况下它正在工作,有些情况下不能使用空值。

if ((updatedData.elementAt(r).get(c).get(1)==null) || 
     (updatedData.elementAt(r).get(c).get(1).equals(""))) 
    { 
     updatedData.elementAt(r).get(c).set(1,"0"); 
    } 
    else if (!(updatedData.elementAt(r).get(c).get(1).toString().equalsIgnoreCase("null"))) 
    { 
     updatedData.elementAt(r).get(c).set(1,"0"); 
    } 
+0

你真的存储字符串“空”或价值'null'? – HABO 2012-03-22 03:08:12

+0

请检查我更新了我的问题,但在某些情况下,它正在工作,其他案件null不会被这些检查过滤 – 2012-03-22 05:05:49

回答

0

我的问题正在通过把两个验证解决

//First 
if ((updatedData.elementAt(r).get(c).get(1).toString().equals("null"))) 
{ 
updatedData.elementAt(r).get(c).set(1,"0"); 
} 
//Second 
if (!(updatedData.elementAt(r).get(c).get(1).toString().equals("null"))) 
{ 
updateQuery +=updatedData.elementAt(r).get(c).get(0)+"='"+updatedData.elementAt(r).get(c).get(1)+"', " ; 
insertColValsStr += " '"+updatedData.elementAt(r).get(c).get(1)+"') ";   
} 
else 
{ 
updateQuery += updatedData.elementAt(r).get(c).get(0)+"=null " ; 
insertColValsStr += " null) " ;  
} 
+0

你真的应该开始缩进你的代码... – ThiefMaster 2012-03-23 10:45:16

1
if((updatedData.elementAt(r).get(c).get(1)==null) || (updatedData.elementAt(r).get(c).get(1).equals(""))) 
      { 
      updatedData.elementAt(r).get(c).set(1,null); 
      } 

更改这段代码和检查...

还有一点

insert into ProductStone (Pieces, Weight, CutChg, LotID, 
CatID, OrnID, StoneID, ShadeID, CutID, ChgType, SetID) 
values ( '10', '0.3', 'null', '601', 'H', '101', 
'S', '0', '13', 'null', '4'). 

当你永远inser空不要放进了报价,将其转换成以下声明和检查

insert into ProductStone (Pieces, Weight, CutChg, LotID, 
CatID, OrnID, StoneID, ShadeID, CutID, ChgType, SetID) 
values ( '10', '0.3', null, '601', 'H', '101', 
'S', '0', '13', null, '4'). 
+0

我更新了代码,现在它工作正常,代码是 – 2012-03-22 04:05:40

+0

以下请检查我更新了我的问题,但在一些它正在工作的情况下,其他案件null不会被这些检查过滤 – 2012-03-22 05:29:36

相关问题