用于android的Windows azure移动服务基于不同的值获取多条记录

用于android的Windows azure移动服务基于不同的值获取多条记录,android,azure-storage,azure-table-storage,azure-mobile-services,Android,Azure Storage,Azure Table Storage,Azure Mobile Services,我正在使用WindowsAzure移动服务在我的android应用程序中创建数据库。 我已经给了第三方库来访问表中的所有详细信息。但是这些库没有像sql语言那样的数据库方法,因此我必须对此进行非常复杂的查询。 我遇到的问题是,我必须根据所选列的不同值获取多个记录,比如有一个名为“id”的列,我必须获取id为1、3、7和10的记录。 有没有人有使用第三方库的经验。 如果有人有一些熟悉的经验,请指导我 提前感谢。有几种方法可以在Android和WIndows Azure之间进行通信。您可以使用WCF

我正在使用WindowsAzure移动服务在我的android应用程序中创建数据库。 我已经给了第三方库来访问表中的所有详细信息。但是这些库没有像sql语言那样的数据库方法,因此我必须对此进行非常复杂的查询。 我遇到的问题是,我必须根据所选列的不同值获取多个记录,比如有一个名为“id”的列,我必须获取id为1、3、7和10的记录。 有没有人有使用第三方库的经验。 如果有人有一些熟悉的经验,请指导我


提前感谢。

有几种方法可以在Android和WIndows Azure之间进行通信。您可以使用WCF(windows communication foundation)并将服务的URL传递给您的android,也可以开始使用windows Azure移动服务,您可以开始使用移动服务(动态数据架构)或使用节点JS将其链接到您在windows Azure上的存储帐户

以下是从WCF开始的链接:

以下是从Windows Azure移动服务开始的链接:


这里是从节点JS开始的链接。有几种方法可以在Android和WindowsAzure之间进行通信。您可以使用WCF(windows communication foundation)并将服务的URL传递给您的android,也可以开始使用windows Azure移动服务,您可以开始使用移动服务(动态数据架构)或使用节点JS将其链接到您在windows Azure上的存储帐户

以下是从WCF开始的链接:

以下是从Windows Azure移动服务开始的链接:


下面是从节点JS开始的链接。Android SDK for Azure Mobile Services有一种查询语言,您可以使用该语言进行类似sql的查询。对于您的具体示例,以下是您的操作方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    try {
        mClient = new MobileServiceClient(
                  "https://YOUR_AZURE_MOBILE_SERVICE.azure-mobile.net/",
                  "YOUR_APPLICATION_KEY",
                  this
            );
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    Button btn = (Button)findViewById(R.id.button1);
    final TextView tv = (TextView)findViewById(R.id.textView1);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            MobileServiceTable<Person> table = mClient.getTable("Test", Person.class);
            table.where(
                field("id").eq(1)
                .or(field("id").eq(3))
                .or(field("id").eq(7))
                .execute(new TableQueryCallback<Person>() {

                @Override
                public void onCompleted(List<Person> result, int count,
                        Exception exception, ServiceFilterResponse response) {

                    if (exception != null) {
                        tv.setText(exception.toString());
                    } else {
                        StringBuffer sb = new StringBuffer();
                        for (Person p : result) {
                            sb.append("P[name=");
                            sb.append(p.name);
                            sb.append(",age=");
                            sb.append(p.age);
                            sb.append("],");
                        }

                        tv.setText(sb.toString());
                    }
                }
            });
        }

    });
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
mClient=新的MobileServiceClient(
"https://YOUR_AZURE_MOBILE_SERVICE.azure-mobile.net/",
“您的应用程序密钥”,
这
);
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
按钮btn=(按钮)findViewById(R.id.button1);
最终文本视图电视=(文本视图)findViewById(R.id.textView1);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
MobileServiceTable=mClient.getTable(“测试”,Person.class);
桌子,在哪里(
字段(“id”)。等式(1)
.或(字段(“id”).等式(3))
.或(字段(“id”).等式(7))
.execute(新建TableQueryCallback(){
@凌驾
未完成公共无效(列表结果、整数计数、,
异常(ServiceFilterResponse响应异常){
if(异常!=null){
tv.setText(exception.toString());
}否则{
StringBuffer sb=新的StringBuffer();
用于(人员p:结果){
sb.追加(“P[name=”);
某人附加(姓名);
某人加上(“,age=”);
某人追加(p.age);
某人加上“],”;
}
tv.setText(sb.toString());
}
}
});
}
});
}

a好的,文档仍在发布中,但您可以在上查看一些示例。

Azure移动服务的Android SDK有一种查询语言,您可以使用该语言进行类似sql的查询。对于您的特定示例,下面是您的操作方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    try {
        mClient = new MobileServiceClient(
                  "https://YOUR_AZURE_MOBILE_SERVICE.azure-mobile.net/",
                  "YOUR_APPLICATION_KEY",
                  this
            );
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    Button btn = (Button)findViewById(R.id.button1);
    final TextView tv = (TextView)findViewById(R.id.textView1);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            MobileServiceTable<Person> table = mClient.getTable("Test", Person.class);
            table.where(
                field("id").eq(1)
                .or(field("id").eq(3))
                .or(field("id").eq(7))
                .execute(new TableQueryCallback<Person>() {

                @Override
                public void onCompleted(List<Person> result, int count,
                        Exception exception, ServiceFilterResponse response) {

                    if (exception != null) {
                        tv.setText(exception.toString());
                    } else {
                        StringBuffer sb = new StringBuffer();
                        for (Person p : result) {
                            sb.append("P[name=");
                            sb.append(p.name);
                            sb.append(",age=");
                            sb.append(p.age);
                            sb.append("],");
                        }

                        tv.setText(sb.toString());
                    }
                }
            });
        }

    });
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
mClient=新的MobileServiceClient(
"https://YOUR_AZURE_MOBILE_SERVICE.azure-mobile.net/",
“您的应用程序密钥”,
这
);
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
按钮btn=(按钮)findViewById(R.id.button1);
最终文本视图电视=(文本视图)findViewById(R.id.textView1);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
MobileServiceTable=mClient.getTable(“测试”,Person.class);
桌子,在哪里(
字段(“id”)。等式(1)
.或(字段(“id”).等式(3))
.或(字段(“id”).等式(7))
.execute(新建TableQueryCallback(){
@凌驾
未完成公共无效(列表结果、整数计数、,
异常(ServiceFilterResponse响应异常){
if(异常!=null){
tv.setText(exception.toString());
}否则{
StringBuffer sb=新的StringBuffer();
用于(人员p:结果){
sb.追加(“P[name=”);
某人附加(姓名);
某人加上(“,age=”);
某人追加(p.age);
某人加上“],”;
}
tv.setText(sb.toString());
}
}
});