gpt4 book ai didi

android - 从数组到数据库异常的 jackcess 空字段

转载 作者:行者123 更新时间:2023-11-30 02:45:10 24 4
gpt4 key购买 nike

我使用这段代码将数据从 access db 传递到数组

    try {
for(i=0;i<numfilas;i++){
HashMap<Object, ?> rowdata = new HashMap<Object, Object>(cur.getNextRow());
for(j=0;j<numcolumnas;j++){

try
{
//get the value at this cursor position
datos[posicion]=rowdata.get(nombrecolumnas[j]).toString();
}
catch(NullPointerException e)
{
//if it's null, just add the empty string
datos[posicion] = "";
}

posicion++;

}
}posicion=0;
} catch (IOException e) {

如您所见,当数据库中有一个空字段时,我将一个空字符串放入我的数组中,当我想将数据从数组写回数据库时,问题就来了,如下所示:

 int j = 0;
cur.reset();
Map<String, Object> myMap = new HashMap<String, Object>();
try {

while(j<32){
cur.moveToNextRow();
myMap.clear();
for (int i = 0; i < numcolumnas; i++) {
myMap.put(nombrecolumnas[i], datos[j]);
j++;
}
cur.updateCurrentRowFromMap(myMap);
}

} catch (IOException e) {
// TODO Auto-generated catch block

//e.printStackTrace();
}

然后我得到这个错误

Java.lang.NumberFormatException: Invalid Double: ""

如果数据库的列数据类型是 TEXT,则什么也不会发生,但如果数据类型是 long 或 double,则会出现该错误,我该如何解决?

最佳答案

您将内容放入数组的代码将 null 值转换为零长度字符串,因此您将内容从数组中取出的代码可能需要执行相反的操作,如下所示:

myMap.put(nombrecolumnas[i], "".equals(datos[j]) ? null : datos[j]);

关于android - 从数组到数据库异常的 jackcess 空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com