使用Android将数据插入Windows Azure Table?

时间:2015-08-29 17:33:27

标签: java c# android azure cloud

我正在尝试将数据插入到我已在sql管理工作室中创建数据库并上传到窗口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;

}

1 个答案:

答案 0 :(得分:0)

根据我的经验,插入日期失败的原因是您的Android应用程序是POJO类&#34;用户&#34;是不正确的。

我指的是POJO类&#34; ToDoItem&#34;从Azure移动服务示例https://github.com/Azure/mobile-services-samples/blob/master/GettingStarted/Android/ZUMOAPPNAME/src/com/example/zumoappname/ToDoItem.java重写用户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注释与数据库中的表列相关。如果代码没有注释表列名,则程序不知道如何将数据项插入正确的表列。

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

您需要使用set&amp; amp;修改主要活动代码。按照POJO类规范获取函数。

如有任何疑虑,请评论我。 最诚挚的问候。