2014-10-13 2 views
0

Я пытаюсь вставить данные в базу данных Azure, и я могу подключиться только к поиску, но по какой-то причине у меня возникают проблемы с вставкой любых данных.Исключение для мобильных служб Azure в android, таблица не существует

Для справки здесь мое описание класса и как я инициализация моего 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; 
    } 
} 

Так что я пытаюсь вставить в таблицу с именем СТУДЕНТЫ, и я уверен, что существует, и я могу даже создайте экземпляр таблицы. Я прочитал некоторые предыдущие решения по Интернету, что сказал то, заявление таблицы структурированы

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

Вместо

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

КАЗАЛОСЬ, чтобы помочь много людей, но я пробовал оба способа и его не работает. И проблема возникает только при попытке вставить экземпляр моего класса СТУДЕНТОВ в базу данных, у меня нет проблемы с созданием 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 
      { 

      } 
     } 
    }); 

Но он всегда дает мне это исключение {» код ": 404," error ":« Ошибка: таблица «СТУДЕНТЫ» не существует. »}

Может быть, мне не нравится моя классная структура? На данный момент я думаю, что это может быть единственным объяснением этой проблемы. Кажется, я немного смущен тем, что требую 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)); 
+0

Какой мобильный сервис бэкенд вы используете (.NET или JavaScript/Node.js)? – carlosfigueira

+0

Бэкэнд - это Javascript, но я думаю, что, возможно, выяснил, в чем проблема. Я отправлю ответ в ближайшее время –

ответ

1

Таким образом, проблема заканчивается тем, что я не изменил схему своей базы данных. База данных уже была создана до того, как я сделал эту мобильную услугу, и я подумал, что могу просто экспортировать эту базу данных, и она будет поддерживаться службой. Кроме того, я забыл вставить столбец «id» во все мои таблицы.

Самый простой способ, по которому я исправил это, перешел на мой портал управления лазурью и сразу создал новые таблицы с их веб-страницы, а затем отправился в свой редактор SQL, чтобы добавить дополнительные поля, которые я хотел, поэтому теперь все работает отлично!

Вот статья объясняющая, как использовать существующую базу данных для лазурных мобильных услуг http://chrisrisner.com/Connecting-an-Existing-Database-to-Windows-Azure-Mobile-Services

0

Вы создали список для вставки params в 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) { 

    } 
}); 
+0

Так что-то вроде 'queryParams.add (новая пара (" email ", student.email));' Я пробовал это, но все равно не повезло. –

+0

@ DillonDrobena Я нашел ваше решение, пожалуйста, посмотрите со следующей ссылки http://wp.qmatteoq.com/having-fun-with-azure-mobile-services-the-setup/ – Boldbayar

+0

Это действительно странно. Если я перейду к myapp.azure-mobile.net/Students, он покажет ошибку, что страница не существует. Я перенесла существующую базу данных в свое приложение, поэтому не знаю, почему она ее не распознает. Мой код все еще может получить таблицу, хотя, когда я делаю 'MobileServiceTable table = mClient.getTable (« СТУДЕНТЫ », СТУДЕНТЫ.класс); ' Присвоение этой переменной возвращает таблицу ' mClazz = "класс ooad.comet_tutors.CommonForms.Database $ СТУДЕНТЫ" имя = "ooad.comet_tutors.CommonForms.Database $ СТУДЕНТЫ" mInternalTable = {ком .microsoft.windowsazure.mobileservices.MobileServiceJsonTable' –

Смежные вопросы