Tôi cần lưu trữ bản ghi bằng cách sử dụng phương pháp rawQuery
, bởi vì tôi muốn chèn ngày và giờ hiện tại (datetime()
), nhưng tôi cũng cần phải chèn các chuỗi có chứa dấu ngoặc kép.Cách sử dụng rawQuery để chèn một bản ghi
Vì vậy, tôi đã viết mã này:
String sql="INSERT INTO sms VALUES (null, ?1, ?2, ?3, datetime())";
dbw.rawQuery(sql, new String[]{str1,str2,str3});
Nhưng nó không lưu trữ bất cứ điều gì ... chuyện gì vậy?
[EDIT]
Bằng cách này, tôi không nhận lỗi, nhưng kỷ lục không được chèn vào.
String mitt="mitt", dest="dest", text="text";
String sql="INSERT INTO sms VALUES (null, ?, ?, ?, datetime('NOW'))";
dbw.rawQuery(sql, new String[]{mitt,dest,text});
Tại thời điểm này, phương pháp duy nhất hoạt động để chèn một kỷ lục (với dấu ngoặc kép vấn đề) là execSQL(String s)
.
Tôi đã chỉnh sửa câu hỏi – supergiox
Có thể rawQuery không hoạt động với INSERT không? Các tài liệu không nói bất cứ điều gì về nó – supergiox
Không có gì ... đây là phương pháp hoạt động (đánh dấu cho dấu ngoặc kép): 'String sql =" INSERT INTO sms VALUES (null, '"+ mitt +"', '"+ dest +" ',' "+ text +" ', datetime (' NOW ')) "; dbw.execSQL (sql); ' – supergiox