我想检查记录是否存在.
这是我尝试过的:
MainActivity.class
public void onTextChanged(CharSequence s, int start, int before, int count) {
System.out.println("Ontext changed " + new String(s.toString()));
strDocumentFrom = s.toString();
if(s.toString().isEmpty()){
} else {
try{
strTransactionDate = dbHelper.getTransactionDateByDocumentNumber(strDocumentFrom);
//strTotalAmount = dbHelper.getTotalAmountByDocumentNumber(strDocumentFrom);
//strVan = dbHelper.getVanByDocumentNumber(strDocumentFrom);
//etTransactionDate.setText(strTransactionDate);
//etTotalAmount.setText(strTotalAmount);
//Log.d("Van", "" + strVan);
//etVan.setText(strVan);
} catch (SQLiteException e) {
e.printStackTrace();
Toast.makeText(ReceivingStocksHeader.this,
"Document number does not exist.", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
DBHelper.class
// TODO DISPLAYING RECORDS TO TRANSRCVHEADER
public String getTransactionDateByDocumentNumber(String strDocumentNumber){
String[] columns = new String[]{KEY_TRANSACTIONDATE};
Cursor c = myDataBase.query(TBL_INTRANS,
columns, …Run Code Online (Sandbox Code Playgroud) 我期待以最快和最正确的方式检查数据库中是否存在记录:
public boolean Exists(String _id) {
Cursor c=db.query(TABLENAME(), new String[] {"1"}, "_ID="+_id, null, null, null, null);
if (!c.equals(null))
return c.moveToFirst();
return false;
}
Run Code Online (Sandbox Code Playgroud)
你觉得它有什么问题吗?
LogCat error:
FATAL EXCEPTION: main
Process: com.sam.shoppingcart, PID: 31773
android.database.sqlite.SQLiteException: near "Beef": syntax error (code 1): , while compiling: SELECT KEY_NAME FROM shop WHERE KEY_NAME=Corned Beef
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:893)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:504)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1339)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1278)
at com.sam.shoppingcart.SQLiteHandler.ifExists(SQLiteHandler.java:63)
at com.sam.shoppingcart.CustomListAdapter$1.onClick(CustomListAdapter.java:77)Run Code Online (Sandbox Code Playgroud)
我有一个使用带有“添加”和“删除”按钮的自定义适配器的列表视图。当单击“添加”按钮时,LV 项目的名称和价格将被添加到数据库中。我想在添加 LV 项目时检查 DB 中是否已经存在。为此,我在 DBHandler 中创建了 ifExists(Model model) 函数。但是现在点击添加按钮它给了我错误。我做错了什么?PS:我从这里得到了这个功能。
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ArrayList<Model> mListData;
private CustomListAdapter adapter;
@Override
protected void …Run Code Online (Sandbox Code Playgroud)