0

我有一种将数据插入 sq-lite 数据库的方法

 public long InsertDetails(int Id,String BatchName,double Weight,
        double Yield)
{
    ContentValues InsertContentValues = AssesmentInsertValues(Id,BatchName,Weight,Yield);
    return this.data.insert("tb_LabAssessment", null, InsertContentValues);
}

从我的主类中,我将值作为参数传递给上述函数,在某些情况下,我想将权重和产量作为空值传递。

String batchname;
double weight;
double Yield;
dbAdapter.InsertAssesmentDetails(objClsProduct.getId(),batchname,weight,Yield)

我如何在这里将重量和产量的值传递为空。

4

4 回答 4

6

您不能将原语作为 null 传递。有两种方法可以做到这一点——首先是让函数采用 Double——类版本的 double。另一种是传入一些未使用的值,例如-1,表示为空。不过,这需要有一个合理的默认值。

于 2013-05-13T04:58:38.510 回答
2

将方法更改为:

public long InsertDetails(int Id, String BatchName, Double Weight, Double Yield)

where Doublecan hold null,因为它是引用类型。

于 2013-05-13T04:58:41.550 回答
1

使用您需要的参数介绍第二种方法。在允许的情况下传递 NULL 需要以某种方式记录。另一种方法使这个过时了,你就完成了。

于 2013-05-13T05:01:55.970 回答
1

像这样的原始类型double不能为空。Double您可以改为发送对象。在这种情况下,在方法签名中使用Double而不是double. 然后调用如下方法

dbAdapter.InsertAssesmentDetails(objClsProduct.getId(),batchname,null,null)
于 2013-05-13T04:59:43.823 回答