0

私はこれを正しく理解できないようですので、コードで見落としているものを尋ねています。これが私のコードにあるものです:

newLeaseData = "INSERT INTO " + enterLogLN + " (Date, "
            + "StockTank1Ft, StockTank1Inch, StockTank2Ft, StockTank2Inch, "
            + "StockTank3Ft, StockTank3Inch, StockTank4Ft, StockTank4Inch, "
            + "Change1, Change2, Change3, Change4) VALUES " 
            + "(" + today + ", '" + valueT1Ft + "', '" + valueT1Inch + "', '" + valueT2Ft 
            + "', '" + valueT2Inch + "', '" + valueT3Ft + "', '" + valueT3Inch 
            + "', '" + valueT4Ft + "', '" + valueT4Inch + "', " + difTotalT1 
            + ", " + difTotalT2 + ", " + difTotalT3 + ", " + difTotalT4 + ")";

文字列に到達するまで、すべてが機能します: difTotalT1、difTotalT2、difTotalT3、difTotalT4。各文字列は、 0'-1" 、 0'-2" 、 0'-3" または 0'-4" のようなものに設定され、コマンドを実行しようとすると:

myDataBase.execSQL(EnterLogDataOilActivity.newLeaseData);

私のアプリは、次の logcat エラーでクラッシュします。

06-05 04:36:23.824: E/AndroidRuntime(1127): android.database.sqlite.SQLiteException: "'-1" 付近、0'": 構文エラー: INSERT INTO について (Date、StockTank1Ft、StockTank1Inch、StockTank2Ft、 StockTank2Inch、StockTank3Ft、StockTank3Inch、StockTank4Ft、StockTank4Inch、Change1、Change2、Change3、Change4) 値 ('05_05_12'、'0'、'1'、'0'、'2'、'0'、'3'、'0 ', '4', 0'-1", 0'-2", 0'-3", 0'-4")

助けてくれてありがとう、私はそれが単純なものでなければならないことを知っています。また、各 difTotalT1 文字列を一重引用符で囲んでみましたが、どちらも機能しません (つまり、difTotalT1 = "'" + difTotalT1 + "'";)。

これは、sqlite でテーブルを作成するために使用した文字列です。

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 TEXT, Change2 TEXT, Change3 TEXT, Change4 TEXT, User TEXT);";
4

3 に答える 3

0

次の方法を試してください、

String singleQuote = "'";
char doubleQuote = '"';

次に、変数を上記の変数と次のように連結します

String Change3 = "0" + singleQuote + "-3" + doubleQuote;  // result = 0'-3" in variable
于 2012-06-05T04:47:23.753 に答える
0

動作させることができなかったので、varをstringからintに変更してから、表示が異なるように設定しました。ご協力いただきありがとうございます

于 2012-06-06T03:03:48.753 に答える
0

バックスラッシュで引用符をエスケープする必要があります。

difTotal = "0\\\'-1\\\"";

これを使用して MySQL に挿入すると、difTotal は "0\'-1\"" になります。

于 2012-06-05T04:51:07.397 に答える