0

我如何为 sqlite 编写一个方法,我可以将我想要更新的列作为方法的参数?

例如像这样,updateThisRow(A4, "test string");

其中 A4 是使用的列名

在数据库类中声明的变量;

 // variables for LARGE_TANK_CHECK_RESULT
    public static final String A0 = "a0";
    public static final String A1 = "a1";
    public static final String A2 = "a2";
    public static final String A3 = "a3";
    public static final String A4 = "a4";
    public static final String A5 = "a5";
    public static final String A6 = "a6";
    public static final String A7 = "a7";........

我之前使用的功能需要更新所有列,而不是我想要的。

 public void insertNewRowLargeTank(String[] a, String[] b){

                        ContentValues contentValues = new ContentValues();
                        contentValues.put(A0, a[0]);
                        contentValues.put(A1, a[1]);
                        contentValues.put(A2, a[2]);
                        contentValues.put(A3, a[3]);
                        contentValues.put(A4, a[4]);
                        contentValues.put(A5, a[5]);
                        contentValues.put(A6, a[6]);
                        contentValues.put(A7, a[7]);
                        contentValues.put(A8, a[8]);
                        contentValues.put(A9, a[9]);
                        contentValues.put(A10, a[10]);
                        contentValues.put(A11, a[11]);
                        contentValues.put(A12, a[12]);
                        contentValues.put(A13, a[13]);
                        contentValues.put(A14, a[14]);
                        contentValues.put(A15, a[15]);
                        contentValues.put(A16, a[16]);
                        contentValues.put(A17, a[17]);
                        contentValues.put(A18, a[18]);
                        contentValues.put(A19, a[19]);
                        contentValues.put(A20, a[20]);
                        contentValues.put(A21, a[21]);
                        contentValues.put(A22, a[22]);
                        contentValues.put(A23, a[23]);
                        contentValues.put(A24, a[24]);
                        contentValues.put(A25, a[25]);
                        contentValues.put(A26, a[26]);
                        contentValues.put(A27, a[27]);
                        contentValues.put(A28, a[28]);
                        contentValues.put(A29, a[29]);
                        contentValues.put(A30, a[30]);
                        contentValues.put(A31, a[31]);
                        contentValues.put(A32, a[32]);
                        contentValues.put(A33, a[33]);
                        contentValues.put(A34, a[34]);
                        contentValues.put(A35, a[35]);
                        contentValues.put(A36, a[36]);
                        contentValues.put(A37, a[37]);
                        contentValues.put(A38, a[38]);
                        contentValues.put(A39, a[39]);
4

1 回答 1

1

你不能。列和表固定在内部准备的 sqlite 语句中。因此,您不能对列进行绑定,而不是为对语句的多次调用绑定新值。

如果要动态构建 sql 语句,请使用 aStringBuilder或创建格式化字符串,String.format()并在每次执行语句时重新使用它。

于 2013-07-02T06:40:10.973 回答