Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

UWP, SQLite : SQLite Code zum Erstellen einer Datenbank, der Tabellen und von Indizes

 

Folgender C# Code erstellt in einem UWP Universal Windows Platform Projekt eine komplette SQLite Datenbank mit Tabellen und Indizes.

Besonderheiten:

 

Datums-Felder

, [dtRead]      datetime NULL

 

ID-Felder mit automatischer Zahlenwert Erhöhung

(IDFolder       Integer Primary Key Autoincrement NOT NULL

 

ID-Spalten als primary Key (zentraler Kennungs-Schlüssel)

, CONSTRAINT[PK_Files] PRIMARY KEY([IDFile])

 

Erstellen von Indizes.

Index Verweise dienen dazu, dass diese Felder zusätzlich in einer nicht sichtbaren Tabelle sortiert werden.

Dadurch ist eine alphabetische Suche in einem Index um ein vielfaches schneller als bei einer unsortierten Spalte. Der Größenfaktor dürfte bei großen Tabellen bis zu 100 sein.

sSQL = @"CREATE INDEX  IF NOT EXISTS  [Folders_Path] ON [Folders] ([Path]);";

            clsDB.Execute(sSQL);

 

Und das Erstellen von mehrspaltigen Indizes, also wie im Beispiel dass nach einem Wort gesucht wird und gleichzeitig nach der Bindung in einer Tabelle.

sSQL = @"CREATE  INDEX  IF NOT EXISTS [IDWord_IDTable_IDRecord] ON [Word_Index]

         ([IDWord] ,[IDTable] ,[IDRecord] );";

clsDB.Execute(sSQL);

 

 

 

Verwendung:

Durch den Aufruf von clsDB.Execute() wird die Datenbank und die Tabellen und Indexe erstellt.

Die Klasse ist als static deklariert wodurch man die Methoden überall direkt aufgerufen kann.

 

 

 

UWP, C# Klasse für SQLite

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using SQLitePCL; //SQLite

 

namespace Photos_Videos

{

    public static class clsDB

    {

        public static SQLiteConnection dbConnection = new SQLiteConnection("Photo_Explorer.db");

 

        public static void Execute(string sSQL)

        {

            //------------< btnCreateDB_Click() >------------

            //SQLiteConnection dbConnection = new SQLiteConnection("Folders.db");

            ISQLiteStatement cnStatement = dbConnection.Prepare(sSQL);

            cnStatement.Step();

            //------------</ btnCreateDB_Click() >------------

       

        }

 

 

        public static void Create_Database()

        {

            //------------< Create_Database() >------------

            //--< Tables >--

            string sSQL = @"CREATE TABLE IF NOT EXISTS Folders

                            (IDFolder       Integer Primary Key Autoincrement NOT NULL

                            , Foldername    VARCHAR(255)

                            , Path          VARCHAR(255)

                            , [dtRead]      datetime NULL

                            );";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE TABLE IF NOT EXISTS [Files] (

                      [IDFile]      INTEGER NOT NULL

                    , [IDFolder]    INTEGER NOT NULL

                    , [Filename]    nvarchar(100) NOT NULL

                    , [Path]        nvarchar(255) NOT NULL

                    , [dtRead]      datetime NULL

                    , [SizeByte]    int NOT NULL

                    , [IsImage]     bit NOT NULL

                    , [Extension]   nchar(5) NOT NULL                  

                    , CONSTRAINT[PK_Files] PRIMARY KEY([IDFile])

                    );";

            clsDB.Execute(sSQL);

 

 

            sSQL = @"CREATE TABLE IF NOT EXISTS [Words] (

                      [IDWord] INTEGER NOT NULL

                    , [Word] nvarchar(100) NOT NULL

                    , CONSTRAINT [PK_Words] PRIMARY KEY ([IDWord])

                    );";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE TABLE IF NOT EXISTS [Word_Index] (

                      [IDWord_Index] INTEGER NOT NULL

                    , [IDWord]       INTEGER NOT NULL

                    , [IDTable]      INTEGER NOT NULL

                    , [IDRecord]     INTEGER NOT NULL

                    , CONSTRAINT     [PK_Word_Index] PRIMARY KEY ([IDWord_Index])

                    );";

            clsDB.Execute(sSQL);

            //--</ Tables >--

 

            //--< Indizes >--

            sSQL = @"CREATE INDEX  IF NOT EXISTS  [Folders_Path] ON [Folders] ([Path]);";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE INDEX  IF NOT EXISTS [Foldername] ON [Folders] ([Foldername] ASC);";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE  INDEX  IF NOT EXISTS [Files_Path] ON [Files] ([Path] );";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE  INDEX  IF NOT EXISTS [Filename] ON [Files] ([Filename] );";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE  INDEX  IF NOT EXISTS [Word] ON [Words]([Word] );";

            clsDB.Execute(sSQL);

 

            sSQL = @"CREATE  INDEX  IF NOT EXISTS [IDWord_IDTable_IDRecord] ON [Word_Index]

                    ([IDWord] ,[IDTable] ,[IDRecord] );";

            clsDB.Execute(sSQL);

            //--</ Indizes >--

            //------------</ Create_Database() >------------

        }

    }

}

 

 

 

  
Reference in my app: Windows Universal App im Windows Store: Photo + Video Explorer  
https://www.Microsoft.com/de-de/store/apps/photo-video-Explorer/9nblggh4vb7x

Mobile
»
Error: Unable to load DLL sqlite3.dll
»
SQLite, UWP: GROUP BY und ORDER BY
»
SQLite, C#: Datum einfügen
»
SQLite: Select TOP Records FROM Table
»
UWP, SQLite : SQLite Code zum Erstellen einer Datenbank, der Tabellen und von Indizes
»
SQLite: komplette SQL Datenbank in Universal Windows App als Beispiel SQLitePCL
»
UWP, SQLite: An update to SQLite for Universal Windows Platform
»
UWP, SQLite Problem: Keine Referenz vorhanden
»
UWP: SQLite Datenbank in Universal Windows App

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de