如何从 Azure 移动服务获取数据
How can I get data from Azure Mobile services
我正在尝试使用 Azure 移动服务从 Azure MS sql 数据库中获取一些数据。我编写的代码如下所示,但是当我调用该方法时,它是 returns null。我哪里做错了?我应该使用什么查询?
private void refreshNumsFromTable() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
mPhonesTable.where().field("PhoneNumber").execute(new TableQueryCallback<PhoneNumbers>() {
@Override
public void onCompleted(final List<PhoneNumbers> result, int count,Exception exception, ServiceFilterResponse response)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
mAdapter.clear();
for(PhoneNumbers num : result)
{
mAdapter.add(num);
}
}
});
}
});
}
});
} catch (Exception e) {
createAndShowDialog(e, "Error");
}
return null;
}
}.execute();
}
你那里没有完整的谓词。通过使用 where()
方法,您要求 PhoneNumber 满足某些标准的结果,但您没有指定该标准。您需要说它等于某物 (eq()
) 或者它以某个字符串开头:
mPhonesTable.where().field("PhoneNumber").eq("555-555-5555").execute().get();
要么
mPhonesTable.where().startsWith("PhoneNumber", "555").execute().get();
如果您只想 return PhoneNumber 列,请使用 select()
方法:
mToDoTable.select("PhoneNumber").execute().get();
有关详细信息,请参阅移动服务 Android SDK 参考:
https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-how-to-use-client-library/#querying
我正在尝试使用 Azure 移动服务从 Azure MS sql 数据库中获取一些数据。我编写的代码如下所示,但是当我调用该方法时,它是 returns null。我哪里做错了?我应该使用什么查询?
private void refreshNumsFromTable() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
mPhonesTable.where().field("PhoneNumber").execute(new TableQueryCallback<PhoneNumbers>() {
@Override
public void onCompleted(final List<PhoneNumbers> result, int count,Exception exception, ServiceFilterResponse response)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
mAdapter.clear();
for(PhoneNumbers num : result)
{
mAdapter.add(num);
}
}
});
}
});
}
});
} catch (Exception e) {
createAndShowDialog(e, "Error");
}
return null;
}
}.execute();
}
你那里没有完整的谓词。通过使用 where()
方法,您要求 PhoneNumber 满足某些标准的结果,但您没有指定该标准。您需要说它等于某物 (eq()
) 或者它以某个字符串开头:
mPhonesTable.where().field("PhoneNumber").eq("555-555-5555").execute().get();
要么
mPhonesTable.where().startsWith("PhoneNumber", "555").execute().get();
如果您只想 return PhoneNumber 列,请使用 select()
方法:
mToDoTable.select("PhoneNumber").execute().get();
有关详细信息,请参阅移动服务 Android SDK 参考: https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-how-to-use-client-library/#querying