java无法从SQLite检索数据
请看一下下面的代码
数据库处理程序。java
用于检索数据的代码
public List<String> getAllBranches() {
// TODO Auto-generated method stub
String selectQuery = "select city from BranchNetwork";
Cursor cursor = database.rawQuery(selectQuery, null);
List <String>branches = new ArrayList<String>();
if(cursor.isFirst())
{
do
{
}
while(cursor.moveToNext());
Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show();
}
return branches;
}
用于插入数据的代码
public String insertData(String city, String streetAddress,String phoneNumber1, String phoneNumber2, String email)
{
String insertQuery = "insert into BranchNetwork ('city','streetAddress','phoneNumber1','phoneNumber2','email') values('"+city+"','"+streetAddress+"','"+phoneNumber1+"','"+phoneNumber2+"','"+email+"');";
try
{
database.execSQL(insertQuery);
return "Data Successfully Inserted";
}
catch(Exception e)
{
Toast.makeText(context, "Exception: "+e.getMessage(), Toast.LENGTH_LONG).show();
return "Data Insertion Failed";
}
}
形式。java
第一个活动。在这里,我检索数据并插入数据。下面是我如何检索数据的
public class Form extends Activity {
private List<String>branches = new ArrayList<String>();
private DatabaseConnector databaseConnector;
String[]arr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form);
databaseConnector = DatabaseHandler.getInstance(this);
databaseConnector.createConnection();
branches = databaseConnector.getAllBranches();
arr = branches.toArray(new String[branches.size()]);
}
}
但是,我什么都没得到!在DatabaseHandler中。java,我制作了一个Toast
,当检索代码时,它应该在这里生成一条消息。但它没有产生任何东西!我正在将数据加载到ListView
中,但它也是空的!这是为什么?请帮忙
附言: 下面是DatabaseConnector。java,DatabaseHandler的插入面
package com.example.esoftcallmanager;
import java.util.List;
import 安卓.content.Context;
public interface DatabaseConnector
{
public void createConnection();
public void closeConnection();
public String getPhoneNumber();
public String insertData(String city, String streetAddress, String phoneNumber1, String phoneNumber2, String email);
public List<String>getAllBranches();
}
# 1 楼答案
您忘记在列表数组中添加数据。 尝试如下:
# 2 楼答案
那是因为你并没有真正对数据做任何事情
首先,您必须将光标的位置移动到第一个位置:光标。moveToFirst() 之后,你可以开始一个while循环
其次,你永远不会把数据放在你的列表分支中,你必须先把光标上的数据放在那里
# 3 楼答案
如果确定数据库中已经有数据,请尝试将
if(cursor.isFirst())
更改为if(cursor.moveToFirst())
# 4 楼答案
希望这能奏效
# 5 楼答案
试试光标。moveToFirst()条件