使用Android向Windows Azure表插入数据

本文关键字:插入 数据 Azure Windows Android 使用 | 更新日期: 2023-09-27 18:10:18

我正试图将数据插入到我在sql管理工作室创建数据库并上传到windows azure的表中。

但是我不能从我的android应用程序插入数据。

/////////main activity/////

private MobileServiceClient MSC;
private MobileServiceTable MST;
User usertable=new User();
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);
    //for connectivity
    try {
        MSC=new MobileServiceClient(
               "app url",
                "app key",
                this
        );
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    spinner=(Spinner)findViewById(R.id.spinner);
    ArrayAdapter adapter=ArrayAdapter.createFromResource(this,R.array.Profession,android.R.layout.simple_dropdown_item_1line);
    spinner.setAdapter(adapter);
    //from here new code for spinner validation
    //till hare code for spinner validation
    Button signUpBotton=(Button)findViewById(R.id.signUpButton);
    signUpBotton.setOnClickListener(new View.OnClickListener(){
                                       public void onClick(View view){
                                          // signUpvalidation();
                                         EditText fname= (EditText) findViewById(R.id.etfirstname);
                                           usertable.first_name=fname.getText().toString();
                                           MSC.getTable(User.class).insert(usertable, new TableOperationCallback<User>() {
                                               public void onCompleted(User entity, Exception exception, ServiceFilterResponse response) {
                                                   if (exception == null) {
                                                       // Insert succeeded
                                                   } else {
                                                       // Insert failed
                                                   }
                                               }
                                           });
类 的代码
package com.example.engiam.anybodyhere;
import com.microsoft.azure.storage.OperationContext;

/**
 * Created by imdad on 8/28/2015.
 */
public class User {
    public String id;
    public String first_name;
}

使用Android向Windows Azure表插入数据

根据我的经验,从android应用程序插入日期失败的原因是POJO类"User"不正确。

我引用Azure移动服务示例https://github.com/Azure/mobile-services-samples/blob/master/GettingStarted/Android/ZUMOAPPNAME/src/com/example/zumoappname/ToDoItem.java中的POJO类"ToDoItem"来重写User POJO类,如下所示:

package com.example.engiam.anybodyhere;
public class User {
    @com.google.gson.annotations.SerializedName("id")
    private String id;
    @com.google.gson.annotations.SerializedName("first_name")
    private String firstName;
    public User() {}
    public User(String id, String firstName) {
         this.setId(id);
         this.setFirstName(firstName);
    }
    public String getId() {
         return id;
    }
    public String setId(String id) {
         this.id = id;
    }
    public String getFirstName() {
         return firstName;
    }
    public String setId(String firstName) {
         this.firstName = firstName;
    }
     // If you need to override function toString & equals, please follow the sample to write them. 
 }

如果类属性名与表列名不同,则上面POJO类中的Java注释与数据库中的表列相关。如果代码没有标注表列名,则程序不知道如何将数据项插入到正确的表列中。

你的类代码缺少设置&方法,它将导致动态模式不会注入User对象并获取其属性以将其插入到表中或创建新表。关于动态模式,请参考https://msdn.microsoft.com/library/azure/jj193175.aspx。

你需要修改你的主活动代码使用set &get函数按照POJO类规范。

有任何问题,请给我留言。致以最亲切的问候。