Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
写入字符串0'-1“;进入sqlite android数据库_Android_Database_Sqlite_Insert_Double Quotes - Fatal编程技术网

写入字符串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,通过连接它是可能的,这实际上是一个有点长的过程