簡體   English   中英

android中的Azure移動服務異常,表不存在

[英]Azure mobile services exception in android, table does not exist

我正在嘗試將數據插入到我的Azure數據庫中,並且我只能連接find,但是由於某些原因,我在插入任何數據時遇到問題。

供參考,這里是我的類說明以及如何初始化MobileServiceClient

public class STUDENTS
{
    public String Id;
    public String email;
    public String password;
    public String FirstName;
    public String LastName;
    public String PhoneNumber;

    public STUDENTS(String email, String password, String fName, String lName, String pNumber) {
        this.email = email;
        this.password = password;
        this.FirstName = fName;
        this.LastName = lName;
        this.PhoneNumber = pNumber;
    }
}

因此,我嘗試將其插入名為STUDENTS的表中,我肯定它的存在,甚至可以創建該表的實例。 我在互聯網上閱讀了一些以前的解決方案,說將表聲明結構化為

MobileServiceTable table = mClient.getTable("STUDENTS", STUDENTS.class); 

代替

MobileServiceTable table = mClient.getTable(STUDENTS.class);

似乎可以幫助很多人,但是我已經嘗試了兩種方法,但沒有成功。 而且僅當我嘗試將我的STUDENTS類的實例插入數據庫時​​才出現問題,從已知類創建MobileServiceTable時沒有問題

    MobileServiceTable table = mClient.getTable("STUDENTS", STUDENTS.class);
    table.insert(student, new TableOperationCallback() {
        @Override
        public void onCompleted(Object entity, Exception exception, ServiceFilterResponse response) {
            if (exception == null)
            {

            }
            else
            {

            }
        }
    });

但這總是給我這個異常{“ code”:404,“ error”:“錯誤:表'STUDENTS'不存在。”}

也許不喜歡我的課程結構? 在這一點上,我認為這可能是對此問題的唯一解釋。 我確實對類定義中需要Id感到有些困惑,我認為它將為我自動生成。 另外,這是我在SQL中的表定義。

CREATE TABLE [dbo].[STUDENTS] (
[email]       NVARCHAR (50) NOT NULL,
[password]    NVARCHAR (50) NOT NULL,
[FirstName]   NVARCHAR (50) NOT NULL,
[LastName]    NVARCHAR (50) NOT NULL,
[PhoneNumber] NVARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([email] ASC));

因此最終導致的問題是我沒有更改數據庫的架構。 在進行此移動服務之前,已經創建了數據庫,我認為我可以簡單地導出該數據庫,並且該服務將支持該數據庫。 另外,我忘記在所有表中插入“ id”列。

解決此問題的最簡單方法是進入Azure管理門戶並直接從其網頁創建新表,然后轉到SQL編輯器添加所需的額外字段,所以現在一切正常!

本文介紹了如何將現有數據庫用於Azure移動服務的文章http://chrisrisner.com/Connecting-an-Existing-Database-to-Windows-Azure-Mobile-Services

您是否創建了將參數插入db的列表?

MobileServiceTable<TodoItem> table = mClient.getTable(TodoItem.class);
List<Pair<String, String>> queryParams = new ArrayList<Pair<String, String>>();
queryParams.add(new Pair<String, String>("option", "value"));
table.insert(todoItem, queryParams, new TableOperationCallback<TodoItem>() {
    public void onCompleted(TodoItem inserted, Exception error, ServiceFilterResponse response) {

    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM