写入字符串0'-1“;进入sqlite android数据库
我似乎无法做到这一点,所以我问我在代码中忽略了什么。以下是我代码中的内容:写入字符串0'-1“;进入sqlite android数据库,android,database,sqlite,insert,double-quotes,Android,Database,Sqlite,Insert,Double Quotes,我似乎无法做到这一点,所以我问我在代码中忽略了什么。以下是我代码中的内容: newLeaseData = "INSERT INTO " + enterLogLN + " (Date, " + "StockTank1Ft, StockTank1Inch, StockTank2Ft, StockTank2Inch, " + "StockTank3Ft, StockTank3Inch, StockTank4Ft, StockTank4Inch, "
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'”:语法错误:插入到大约(日期,StockTank1Ft,StockTank1Inch,StockTank2Ft,StockTank2Inch,StockTank3Ft,StockTank3Inch,StockTank4Ft,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);";
试试下面的方法
String singleQuote = "'";
char doubleQuote = '"';
现在将您的变量与上述变量连接起来,如下所示
String Change3 = "0" + singleQuote + "-3" + doubleQuote; // result = 0'-3" in variable
你必须用反斜杠转义引号,即
difTotal = "0\\\'-1\\\"";
这导致在使用difTotal插入MySQL时,difTotal为“0\'-1\”。我无法让它工作,所以我将我的var从字符串更改为int,然后设置它,使其以不同的方式显示。感谢您的帮助尝试转义单引号和双引号\'并\"它仍然会给我同样的logcat错误。你能对你的问题进行编辑并粘贴“enterLogLN”表的结构吗?你可以考虑使用它,这样你就不必为了构建SQL而纠结于字符串争用。我的意思是Android的SQLite API提供的
insert
方法,遵循link.ok,将返回更新的答案,还有一个选项:)你的意思是我只需要把字符串加在一起,比如:string AAAA=“a”string BBBB=“b”string CCCC=“c”所以string ddddd=AAAA+BBBB+CCCC+ddddddd就可以得到:abcyes,通过连接它是可能的,这实际上是一个有点长的过程