Azure 移动服务:无法将任何记录插入 table?
Azure Mobile Service: Cannot insert any records to table?
我创建了一个 azure 移动服务并正确设置了所有数据库 table(测试了它们)。但是,当我尝试通过我的 android 应用程序向我的 SQL table 插入一条记录时,该记录不会被添加。
(是的,我的 SQL table 也已准备好使用移动服务。也更改了架构)
我也没有收到错误。
这是我的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_screen);
final String mobileServiceUrl =
"https://MY_AZURE_MOBILE_URL.net/tables/UserTable";
final String mobileServiceAppId =
"MY_MOBILESERVICE_APPID";
try {
// Create the Mobile Service Client instance, using the provided
// Mobile Service URL and key
mClient = new MobileServiceClient(
mobileServiceUrl,
mobileServiceAppId,
this);
// Get the Mobile Service Table instance to use
mToDoTable = mClient.getTable(UserTable.class);
} catch (MalformedURLException e) {
}
Button regiBtn = (Button) findViewById(R.id.signupDivertBtn);
regiBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try
{
UserTable user = new UserTable();
user.setPassword("111");
user.setFname("TESTName");
user.setId("234232");
user.setEmail("sear@tr.com");
mToDoTable.insert(user);
}
为什么 mToDoTable.Insert() 语句不起作用?插入记录到azuretable的方法不对吗?
编辑:
这是我的 UserTable 实体 class:
public class UserTable {
@com.google.gson.annotations.SerializedName("id")
private String id;
@com.google.gson.annotations.SerializedName("Email")
private String email;
@com.google.gson.annotations.SerializedName("Password")
private String password;
@com.google.gson.annotations.SerializedName("UserFName")
private String fname;
public UserTable()
{
}
public UserTable(String id, String email, String password, String fname) {
this.setId(id);
this.setEmail(email);
this.setPassword(password);
this.setFname(fname);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
您的 mobileServiceUrl 值有误。它应该像这样指向您的移动服务的根目录“https://YOURSERVICENAME.azure-mobile.net/”。
我会让服务为您设置 ID (GUID)。如果您不喜欢,只需添加一个字段来存储您自己的 ID。
在了解您的 Android 应用无法运行的原因之前。我建议您先确保您可以通过 API 帮助插入记录。您应该能够通过本地调试或在您发布的 Azure 网站上对此进行测试。一旦它正常工作,您就可以通过 API 帮助插入记录。然后试试CSharpRocks提到的。
请注意,当您在本地调试时,您应该像 SQL 快速服务器一样设置一个本地数据库,并更改您的 web.config MS_TableConnectionString 以匹配。而你的客户端App中的手机客户端URL(比如Android)应该是debug时在浏览器中弹出的本地URL
我创建了一个 azure 移动服务并正确设置了所有数据库 table(测试了它们)。但是,当我尝试通过我的 android 应用程序向我的 SQL table 插入一条记录时,该记录不会被添加。 (是的,我的 SQL table 也已准备好使用移动服务。也更改了架构)
我也没有收到错误。
这是我的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_screen);
final String mobileServiceUrl =
"https://MY_AZURE_MOBILE_URL.net/tables/UserTable";
final String mobileServiceAppId =
"MY_MOBILESERVICE_APPID";
try {
// Create the Mobile Service Client instance, using the provided
// Mobile Service URL and key
mClient = new MobileServiceClient(
mobileServiceUrl,
mobileServiceAppId,
this);
// Get the Mobile Service Table instance to use
mToDoTable = mClient.getTable(UserTable.class);
} catch (MalformedURLException e) {
}
Button regiBtn = (Button) findViewById(R.id.signupDivertBtn);
regiBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try
{
UserTable user = new UserTable();
user.setPassword("111");
user.setFname("TESTName");
user.setId("234232");
user.setEmail("sear@tr.com");
mToDoTable.insert(user);
}
为什么 mToDoTable.Insert() 语句不起作用?插入记录到azuretable的方法不对吗?
编辑:
这是我的 UserTable 实体 class:
public class UserTable {
@com.google.gson.annotations.SerializedName("id")
private String id;
@com.google.gson.annotations.SerializedName("Email")
private String email;
@com.google.gson.annotations.SerializedName("Password")
private String password;
@com.google.gson.annotations.SerializedName("UserFName")
private String fname;
public UserTable()
{
}
public UserTable(String id, String email, String password, String fname) {
this.setId(id);
this.setEmail(email);
this.setPassword(password);
this.setFname(fname);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
您的 mobileServiceUrl 值有误。它应该像这样指向您的移动服务的根目录“https://YOURSERVICENAME.azure-mobile.net/”。
我会让服务为您设置 ID (GUID)。如果您不喜欢,只需添加一个字段来存储您自己的 ID。
在了解您的 Android 应用无法运行的原因之前。我建议您先确保您可以通过 API 帮助插入记录。您应该能够通过本地调试或在您发布的 Azure 网站上对此进行测试。一旦它正常工作,您就可以通过 API 帮助插入记录。然后试试CSharpRocks提到的。
请注意,当您在本地调试时,您应该像 SQL 快速服务器一样设置一个本地数据库,并更改您的 web.config MS_TableConnectionString 以匹配。而你的客户端App中的手机客户端URL(比如Android)应该是debug时在浏览器中弹出的本地URL