Доступ к определенным данным столбца с помощью Android Xamarin SQLite

#android #sqlite #xamarin

#Android #sqlite #xamarin

Вопрос:

Я создаю действие входа в систему в Xamarin Android, и у меня есть все модули (библиотеки и файлы), подключенные и готовые к работе, но у меня проблема с извлечением одного объекта (фактически электронной почты) из таблицы (он уже содержит данные).)…Мой код объясняется ниже…

 //The class that acts as a blueprint to the table is this one
class Person {
       [PrimaryKey, AutoIncrement]
        public int id { set; get; }
        public string name { set; get;}
        public string department { set; get; }
        public  string email { set; get; }
        public string password { set; get; }
            }
  

Файл, который обрабатывает логику входа в систему

 class Login : AppCompatActivity
    {
     protected override void OnCreate(Bundle savedInstanceState){
    //Login button definition
  Button login=(Button)FindViewById<Button>(Resource.Id.login);
     //Make the button raise login event on click
    login.Click  =Login;                                                                }
     }
//Button method for login
private void Login(object sender, EventArgs e){
   //Define location that the connection will use to create and store tables
string dbpath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "dbpersons.db");
 //Define new connection to database using a connection string
  var conn=new SQLite.SQLiteConnection(dbpath);
    try{
          //Microsoft manual says this can access elements of a row using id parameter
        var stock = db.Get<Person>(5);
      // I need code that will let me access email from specific column in table
   }catch(SQLite.SQLiteException m){
    //Display exception in a toast
     Toast.MakeText(Application.Context,m.Message,ToastLength.Long).Show();
    }  
  }
}
  

Мне нужно это электронное письмо для сравнения с другим значением, которое пользователь введет в `EditText` `

Комментарии:

1. есть ли в Stock таблице email столбец? Опубликованное вами определение класса предназначено для Person , а не Stock

2. @Jason, идет редактирование хорошей точки

3. Теперь все хорошо, мне просто нужен код, который я буду использовать для выбора электронной почты из таблицы и сравнения его со значением, введенным в EditText

Ответ №1:

вы извлекаете объект из базы данных, поэтому для доступа к свойству этого объекта просто используйте свойство

 var stock = db.Get<Person>(5);
// I need code that will let me access email from specific column in table
var email = stock.email;
  

Комментарии:

1. Благодаря этому удалось получить электронную почту из идентификатора, связанного с этой записью, можете ли вы отредактировать ее, чтобы сравнить со значением, введенным пользователем EditText ? если true, запустите новое действие (активность панели мониторинга), а также передайте электронную почту в качестве дополнительных намерений классу панели мониторинга

2. Как проверить, возвращает ли запрос SQLite true

3. Get возвращает объект, а не bool.

4. Мне удалось найти этот код для извлечения объекта, и sql может возвращать значение null, но я это обработал, а затем у меня есть код в этой if else логике и его object mail=connection.FindByQuery<Table>(query parameters);

5. если у вас есть другой вопрос, вам следует опубликовать новый вопрос