错误转换数据类型为varchar到数字
,我在下面的查询得到一个错误:错误转换数据类型为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");
}
我的问题正在通过把两个验证解决
//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) " ;
}
你真的应该开始缩进你的代码... – ThiefMaster 2012-03-23 10:45:16
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').
我更新了代码,现在它工作正常,代码是 – 2012-03-22 04:05:40
以下请检查我更新了我的问题,但在一些它正在工作的情况下,其他案件null不会被这些检查过滤 – 2012-03-22 05:29:36
你真的存储字符串“空”或价值'null'? – HABO 2012-03-22 03:08:12
请检查我更新了我的问题,但在某些情况下,它正在工作,其他案件null不会被这些检查过滤 – 2012-03-22 05:05:49