Azure移动服务:无法向表中插入任何记录?

时间:2015-04-15 14:03:34

标签: android sql-server azure azure-sql-database azure-mobile-services

我创建了一个azure移动服务并正确设置了所有数据库表(测试它们)。但是,当我尝试通过我的Android应用程序将记录插入我的SQL表时,记录没有被添加。 (是的,我的SQL表也准备好了移动服务。也改变了Schema)

我也没有收到错误。

这是我的代码:

@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()语句不起作用?这不是将记录插入azure表的正确方法吗?

编辑:

这是我的UserTable实体类:

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;
    }
}

2 个答案:

答案 0 :(得分:0)

您的mobileServiceUrl值错误。它应该指向您的移动服务的根源,如此" https://YOURSERVICENAME.azure-mobile.net/"。

我会让服务为您设置ID(GUID)。如果你不喜欢它,只需添加另一个字段来存储你自己的ID。

答案 1 :(得分:0)

在进入为什么你的Android应用程序无法正常工作之前。我建议您先确保可以通过API帮助插入记录。您应该能够通过本地调试或在已发布的azure站点上进行测试。一旦它正常工作,您就可以通过API帮助插入记录。然后试试CSharpRocks提到的内容。

请注意,在本地调试时,应该像SQL Express服务器一样设置本地数据库,并更改web.config MS_TableConnectionString以匹配。您的客户端应用程序(例如,Android)中的移动客户端URL应该是调试期间在浏览器中弹出的本地URL。