0

申し訳ありませんが、うまくいきません。次のコマンドでデータベース テーブルを作成しました。

    newLeaseTable = "create table '" + leaseName + "' (_id integer primary key autoincrement,"
            + " Date TEXT, StockTank1Ft NUMERIC, StockTank1Inch NUMERIC,"
            + " StockTank2Ft NUMERIC, StockTank2Inch NUMERIC, StockTank3Ft NUMERIC,"
            + " StockTank3Inch NUMERIC, StockTank4Ft NUMERIC, StockTank4Inch NUMERIC,"
            + " Change1 NUMBER, Change2 NUMBER, Change3 NUMBER, Change4 NUMBER, User TEXT);";
    myDataBase.execSQL(newLeaseTable);

rawquery またはクエリ ステートメントを使用してデータベースにクエリを実行すると、アプリがクラッシュし、ログがクエリ ステートメントを指します。テーブル「LeaseNames」で、変数文字列「enterLogLN」(editText からのもの) と一致する列「colLeaseNames」の文字列を探し、同じ行の「colWaterWells」列から整数を返します。誰でもこれを手伝ってくれますか、

ありがとう

この場合、変数「enterLogLN」は「約」です。

re is my rawquery and logcat:
    String col[] = {"colLeaseNames", "colWaterWells"};
    String test = "Select * from LeaseNames Where " + col + " ='" + enterLogLN + "'";
    return Cursor cRWLeaseInfo = myDataBase.rawQuery(test, null);
logcat:
     Caused by: android.database.sqlite.SQLiteException: unrecognized token: "[Ljava.lang.String;@405397e0 ='about'": , while compiling: Select * from LeaseNames Where [Ljava.lang.String;@405397e0 ='about'
4

2 に答える 2

0

これがあなたの問題です:

String test = "Select * from LeaseNames Where " + col + " ='" + enterLogLN + "'";

への変更:

String test = "Select * from LeaseNames Where " + col[0] + " ='" + enterLogLN + "'";

より良いクエリ:

Cursor cursor = myDataBase.query("LeaseNames", null, "colLeaseNames=?", new String[] { enterLogLN } , null, null, null);
于 2012-07-07T05:04:41.417 に答える
0

このようにAndroidでデータベース挿入操作を行います。

     SqliteDataBase SDB = this.getWritableDatabase();

    ContentValues values = new ContentValues();// values to insert into DB Table
    values.put(COLUMNE_NAME1, "data1");
    values.put(COLUMND_NAME2, "data2");
    values.put(COLUMND_NAME3, "data3");
    long id = SDB.insert(TABLE_NAME, null, values); // inserting into table_name will return row id
    Log.d(TAG, "Event Inserted : " + id); 
    SDB.close();

この方法を試してみませんか。

于 2012-07-07T04:55:55.927 に答える