使用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应用程序插入日期失败的原因是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类规范。
有任何问题,请给我留言。致以最亲切的问候。