我正在嘗試下面的代碼來插入數據在SqlLite數據庫。我檢查的是:Sqlite INSERT語句不工作
- db已創建(我可以在瀏覽器中看到它); (我已經在前面創建了它,列代碼爲char(10),desc char(50)和price char(10));
- CSV文件讀取正常;
- 我用了一個Stringbuilder函數來模擬Java中的一個(工作正常!);
- 我發出了「alert」來檢查INSERT命令的語法('INSERT INTO codeData(code,desc,price)values(「123456」,「Cardboard 123」,「US $ 9,99」)') ;
- 該代碼運行時沒有錯誤消息。
但是表中沒有數據輸入!
任何人都可以幫到我嗎?我認爲這個錯誤很明顯,但經過24小時的努力,我再也看不到了......謝謝!
tableName ="codeData";
columns = "code, desc, price";
str1 = " 'INSERT INTO " + tableName + " (" + columns + ") VALUES (";
str2 = ")'";
function Codes_Import() {
var db = openDatabase("db_codes", "1.0", "Code Information" , 1500000);
file = ReadFile("PRICELIST.csv"); // open csv
var lines = file.responseText.split('\n');
for(var line = 0; line < lines.length; line++)
{
var line = (lines[line]);
var sb = new StringBuilder(str1);
var str = line.split(";");
sb.append('"' + str[0] + '","');
sb.append(str[1] + '", "');
sb.append(str[2] + '"');
sb.append(str2);
alert (sb); //<-- just to check if the INSERT statement is correct.
db.transaction(function(tx) {
tx.executeSql(sb);
});
}
}
從我能看到你開始交易但忘了提交? 'tx.commit();'? – jpaljasma
@jpaljasma交易功能自動提交。 –
爲什麼每個INSERT語句都使用一個事務? –