#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
таблице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. если у вас есть другой вопрос, вам следует опубликовать новый вопрос