У меня возникла проблема с чтением таблиц базы данных SQLite.Нет такой таблицы sqlite при выполнении запроса на форматах xamarin pcl
мой OBJ_User класс:
namespace Fimap.Models
{
public class OBJ_User
{
public int DLR_Id { get; set; }
public string DLR_Username { get; set; }
public string DLR_Password_Hash { get; set; }
public object DLR_Nome { get; set; }
public string DLR_Cognome { get; set; }
public int DLR_Tipo { get; set; }
public string DLR_Azienda { get; set; }
public object DLR_Telefono { get; set; }
public object DLR_Email { get; set; }
public int DLR_Abilitato { get; set; }
public object DLR_Time_Zone { get; set; }
public object DLR_Country { get; set; }
public string DLR_Culture { get; set; }
public object DLR_Email1 { get; set; }
public object DLR_MCC_Modello_Alias { get; set; }
public object DLR_Anagrafica { get; set; }
public object DLR_Firma { get; set; }
public bool IsFIMAP { get; set; }
public bool IsSTANDARD { get; set; }
public bool IsDealerOrFimap { get; set; } //true dealer - false user
public object DLR_Tipo_Esteso { get; set; }
public object DLR_Abilitato_Esteso { get; set; }
}
}
мой интерфейс в PCl проекта:
public interface IDatabaseConnection
{
SQLite.SQLiteConnection DbConnection();
}
Android
[assembly: Xamarin.Forms.Dependency(typeof(DatabaseConnection_Android))]
namespace Fimap.Droid
{
public class DatabaseConnection_Android : IDatabaseConnection
{
public SQLiteConnection DbConnection()
{
var dbName = "FimapDB.db3";
var path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), dbName);
return new SQLiteConnection(path);
}
}
}
IOS
[assembly: Xamarin.Forms.Dependency(typeof(DatabaseConnection_iOS))]
namespace App.iOS
{
public class DatabaseConnection_iOS : IDatabaseConnection
{
public SQLiteConnection DbConnection()
{
var dbName = "FimapDB.db3";
string personalFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string libraryFolder = Path.Combine(personalFolder);
var path = Path.Combine(libraryFolder, dbName);
return new SQLiteConnection(path);
}
}
}
ПКЛ соединение (база данных право подключения):
database = DependencyService.Get<IDatabaseConnection>().DbConnection();
запрос:
var test = database.Query<OBJ_User>("SELECT * FROM OBJ_User");
когда я запустить запрос у меня есть эта ошибка:
SQLite.SQLiteException: no such table: OBJ_User
OBJ_User находится в дабатасе с одной записью. Почему соединение не отображает таблицу? переменная базы данных правильно подключается к базе данных sqlite, я не понимаю, потому что база данных не получает сопоставление из файла sqlite. Решение?
если вы хотите другую информацию, напишите мне в комментариях, я отвечу
Вы вызываете 'database.CreateTable();' где-нибудь в вашем коде? Я знаю, что у вас уже есть таблица в базе данных, но вам может понадобиться «Создать» ее для библиотеки SQLite, чтобы получить сопоставление. –
Также в качестве дополнительной заметки параметризация вашего запроса может быть полезна для предотвращения орфографических ошибок (например, 'var test = database.Query (« SELECT * FROM? », Nameof (OBJ_user));' «Просто заполняется» in с параметром, и библиотека выполняет некоторую работу внутри, чтобы убедиться, что она отформатирована правильно. –
если я делаю database.CreateTable(); я получаю эту ошибку: System.NotSupportedException: не знаю о System.Object, то если i do var test = database.Query («SELECT * FROM?», nameof (OBJ_user)), у меня есть ошибка в OBJ_User. –