मैं अपने एंड्रॉइड जावा प्रोजेक्ट में एकाधिक SQLite डेटाबेस का उपयोग कर रहा हूं। निम्नलिखित कोड का उपयोग करके पहला (लॉगिन के लिए) ठीक काम करता है और मैं कनेक्शन बंद कर रहा हूं। हालांकि, निम्नलिखित पृष्ठ पर मैं एक फ़ंक्शन को कॉल कर रहा हूं जो एक अलग डेटाबेस का उपयोग करता है लेकिन ऐसा लगता है कि यह अभी भी पहले डेटाबेस का संदर्भ देता है, न कि नया। मुझे यह त्रुटि मिल रही है:एंड्रॉइड: गलत डेटाबेस का उपयोग कर SQLite
09-14 13:18:01.990: I/SqliteDatabaseCpp(10035): sqlite returned: error code = 1, msg = no such table:
NextID, db=/mnt/extSdCard/DirectEnquiries/AuditingData/Static/Users
जो सही है, NextID उपयोगकर्ताओं में नहीं है।
if(String.valueOf(loginCount).equals("2")) {
File dbfile = new File(Global.StaticDB + "/Users");
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
Cursor c = db.rawQuery("SELECT UserID from Users where UserID like '" + txtUsername.getText().toString().trim() + "' AND Password like '" + txtPassword.getText().toString().trim() + "'", null);
c.moveToFirst();
if(c.getCount() > 0) {
Global.Username = c.getString(c.getColumnIndex("UserID"));
Global.currentDB = spnLocation.getSelectedItem().toString();
Global.currentDBfull = Global.sctArea + Global.currentDB;
db.close();
Context context = getApplicationContext();
CharSequence text = "Logged In";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
Intent ShowMainPage = new Intent(view.getContext(), MainPage.class);
startActivityForResult(ShowMainPage, 0);
}
अगले पृष्ठ इस उपयोग कर रहा है:
यहाँ जो उपयोगकर्ता तालिका का उपयोग करता प्रवेश पृष्ठ के लिए कोड है
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_page);
TextView txt = (TextView) findViewById(R.id.textView1);
txt.setText(Global.Username);
TextView dbtxt = (TextView) findViewById(R.id.txtDB);
dbtxt.setText(Functions.getNextID("StationObjects"));
}
और समारोह है:
public static int getNextID(String tablename) {
Log.e("Current DB is: ", Global.currentDBfull);
File dbfile = new File(Global.currentDBfull);
SQLiteDatabase dbF = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
int rtnID=(int)DatabaseUtils.longForQuery(dbF,"Select NxtNumber from NextID where NxtTable like '" + tablename + "'",null);
rtnID += 1;
//db.rawQuery("update NextID set NxtNumber = '" + rtnID + "' where NxtTable like 'StationObjects'", null);
dbF.close();
return rtnID;
}
मैं कैसे सुनिश्चित करूं कि यह दूसरे डेटाबेस का उपयोग करता है और पहले नहीं? टॉम
कहाँ आपको लगता है कि लॉगिन डाटाबेस पर अपने कर्सर बंद किया? – jnthnjns
बस पहले उप पर कर्सर को बंद करने का प्रयास किया लेकिन फिर भी वही त्रुटि – TMB87
आपने अपने कई लॉगकट पोस्ट नहीं किए हैं। क्या हम सिर्फ "वर्तमान डीबी है:" संदेश, अपवाद और इतने पर जांच सकते हैं? Global.sctArea भी क्या है, और क्या होता है यदि (c.getCount()> 0) गलत है? आप कई सूचनाओं को मजाक कर रहे हैं (मुझे पता है कि सादगी के लिए है, लेकिन यह बहुत मदद नहीं कर रहा है ...) –