简体   繁体   English

如何从Azure移动服务获取数据

[英]How can I get data from Azure Mobile services

I am trying to get some data from azure MS sql database with azure mobile services. 我正在尝试从带有Azure移动服务的Azure MS SQL数据库中获取一些数据。 I wrote the code as like below but when I call the method it is returns null. 我写的代码如下所示,但是当我调用该方法时,它返回null。 Where am I doing wrong? 我在哪里做错了? What is the query that I should use? 我应该使用什么查询?

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();

}

You don't have a complete predicate there. 您那里没有完整的谓词。 By using the where() method, you're asking for results where PhoneNumber meets some criterion, but you aren't specifying that criterion. 通过使用where()方法,您需要在PhoneNumber满足某些条件的地方查询结果,但您没有指定该条件。 You need to say that it's equal to something ( eq() ) or that it starts with some string: 您需要说它等于某事( eq() )或以某个字符串开头:

mPhonesTable.where().field("PhoneNumber").eq("555-555-5555").execute().get(); or mPhonesTable.where().startsWith("PhoneNumber", "555").execute().get(); mPhonesTable.where().startsWith("PhoneNumber", "555").execute().get();

If you're trying to just return the PhoneNumber column, then use the select() method: 如果您只想返回PhoneNumber列,请使用select()方法:

mToDoTable.select("PhoneNumber").execute().get();

For more information, please see the Mobile Services Android SDK reference: https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-how-to-use-client-library/#querying 有关更多信息,请参阅Mobile Services Android SDK参考: https : //azure.microsoft.com/zh-cn/documentation/articles/mobile-services-android-how-to-use-client-library/#querying

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM