我正在寻找几个小时,以找到解决此问题的方法:
在我的Android应用程序的最开始,向用户显示带按钮的布局。如果他点击“任务”按钮,就会弹出一个listView(另一个活动和布局),向他显示所有可用的任务,点击一个他可以做更多的事情,但它们对我的问题不是必需的。关键是,应用程序不会从数据库中获取任何数据,但是当我单步进入或单步执行时,为所有DBS调用方法的行调用它作品。 以下是必需品:
if (connection1.OpenDatabase(1, getDataBaseName()))
{
CTask = connection1.DBQueryTable(getDataBaseName(), "Tasks", TempFieldT);
CEquipment = connection1.DBQueryTable(getDataBaseName(), "Equipment", TempFieldE);
connection1.CloseDatabase();
}
所以他会跑过那些线,执行下面的线,但是当我不用断点和步骤来监督它时,不会给任何数据。当我这样做时,一切都按照他们应该的方式运作。
应用程序在这个地方运行数据库的东西。
public Android.Database.ICursor DBQueryTable(string DataBaseName, string TableName, string[] Fields)
{
FindDBPath(DataBaseName);
Android.Database.ICursor c;
string TempF = "";
string str = "";
foreach (string n in Fields)
{ TempF += n + ","; }
SQLQuery = "SELECT " + (str = TempF.TrimEnd(',')) +" FROM " + TableName;
c = sqldTemp.RawQuery(SQLQuery, null);
return c;
}
那么app / compiler / debugger为什么会这样呢?我有什么错误,但我现在无法理解?
Ps:是的,我知道有一个查询功能,但这里没有必要,只要它能解决我的问题。
答案 0 :(得分:0)
您的DBQueryTable
方法会返回光标。只要您在以下行中关闭连接,该操作就会失效:
connection1.CloseDatabase();
只要您需要光标,就应该保持连接打开状态。例如,您可以从光标中获取所有数据,然后然后关闭连接。