2016-01-12 4 views
1

Я использую Xamarin Forms для разработки приложения и использования SQlite для хранения сведений о пользователе. Просто началось с Windows (Windows 10). Поддерживает ли SQLite поддержку UWP, я ссылался на некоторые сайты и их высказывания, которые он поддерживает. но когда я пытаюсь, соединение всегда равно нулю.Поддержка SQLite для универсального приложения Windows

код я использую:

public SQLite.Net.SQLiteConnection GetConnection() 
{ 
    var sqliteFilename = "Sample.db3"; 
    string path = Path.Combin(ApplicationData.Current.LocalFolder.Path, sqliteFilename); 
    if (!File.Exists(path)) 
    { 
    File.Create(path + sqliteFilename); 
    } 
    var plat = new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(); 
    var conn = new SQLite.Net.SQLiteConnection(plat,path); 

    return conn; 
    } 
} 

Любая помощь или предложение будет оценено.

Примечание: Я установил SQLite.Net-PCL и добавил ссылку на SQLite для универсального приложения платформы

+0

Вы следующие инструкции для Windows? https://developer.xamarin.com/guides/xamarin-forms/working-with/databases/#Adding_SQLite_to_WinPhone – Jason

+0

Да, я выполнил инструкции – Sudha

+0

Вы также видели http://ef.readthedocs.org/en/latest/ получение стартером/uwp.html? –

ответ

0

Внутри вашего App.cs меня есть статическая переменная:

public static LocalDatabase Database { get; private set; } 

public App() 
{ 
    Database = new LocalDatabase();... 
} 

И тогда вы может получить доступ к классу базы данных на любом месте вашего контроллера, как: App.Database

Для справки класса LocalDatabase будет содержать:

public class LocalDatabase 
{ 
    static readonly object locker = new object(); 

    static SQLiteConnection database; 

    string DatabasePath { 
     get { 
      const string sqliteFilename = "LocalDatabaseSQLite.db3"; 
#if __IOS__ 
      string documentsPath = Environment.GetFolderPath (Environment.SpecialFolder.Personal); // Documents folder 
      string libraryPath = Path.Combine (documentsPath, "..", "Library"); // Library folder 
      var path = Path.Combine (libraryPath, sqliteFilename); 
#else 
#if __ANDROID__ 
      string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); // Documents folder 
      var path = Path.Combine(documentsPath, sqliteFilename); 
#else 
      // WinPhone 
      var path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, sqliteFilename); ; 
#endif 
#endif 
      return path; 
     } 
    } 

    public LocalDatabase() 
    { 
     database = new SQLiteConnection (DatabasePath); 

     database.CreateTable<UserSQLModel>(); 

     //All your create tables... 
    } 
} 
Смежные вопросы