我正在尝试将数据插入到我已在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;
}
答案 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类规范获取函数。
如有任何疑虑,请评论我。 最诚挚的问候。