3

I am new to windows desktop application development.Will you please suggest me how to create a SQLite database in windows presentation foundation(wpf)?

1

2 Answers 2

5

You need to do 2 things:

  1. Add the SQLite dll to your application references
  2. Write a class that builds the Db.

for example:

using System;
using System.Collections.Generic;
using System.Data.SQLite;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Database
{
public class DbCreator
{
    SQLiteConnection dbConnection;
    SQLiteCommand command;
    string sqlCommand;
    string dbPath = System.Environment.CurrentDirectory + "\\DB";
    string dbFilePath;
    public void createDbFile()
    {
        if (!string.IsNullOrEmpty(dbPath) && !Directory.Exists(dbPath))
            Directory.CreateDirectory(dbPath);
        dbFilePath = dbPath + "\\yourDb.db";
        if (!System.IO.File.Exists(dbFilePath))
        {
            SQLiteConnection.CreateFile(dbFilePath);
        }
    }

    public string createDbConnection()
    {
        string strCon = string.Format("Data Source={0};", dbFilePath);
        dbConnection = new SQLiteConnection(strCon);
        dbConnection.Open();
        command = dbConnection.CreateCommand();
        return strCon;
    }

    public void createTables()
    {
        if (!checkIfExist("MY_TABLE"))
        {
            sqlCommand = "CREATE TABLE MY_TBALE(idnt_test INTEGER PRIMARY KEY AUTOINCREMENT,code_test_type INTEGER";
            executeQuery(sqlCommand);
        }

    }

    public bool checkIfExist(string tableName)
    {
        command.CommandText = "SELECT name FROM sqlite_master WHERE name='" + tableName + "'";
        var result = command.ExecuteScalar();

        return result != null && result.ToString() == tableName ? true : false;
    }

    public void executeQuery(string sqlCommand)
    {
        SQLiteCommand triggerCommand = dbConnection.CreateCommand();
        triggerCommand.CommandText = sqlCommand;
        triggerCommand.ExecuteNonQuery();
    }

    public bool checkIfTableContainsData(string tableName)
    {
        command.CommandText = "SELECT count(*) FROM " + tableName;
        var result = command.ExecuteScalar();

        return Convert.ToInt32(result) > 0 ? true : false;
    }


    public void fillTable()
    {
        if (!checkIfTableContainsData("MY_TABLE"))
        {
            sqlCommand = "insert into MY_TABLE (code_test_type) values (999)";
            executeQuery(sqlCommand);
        }
    }
  }
}

Good luck!

Sign up to request clarification or add additional context in comments.

Comments

2

1.using System.Data;

2.using System.Data.SQLite;

            DataTable tb = new DataTable();
            string connection = @"Data Source=C:\Folder\SampleDB.db;Version=3;New=False;Compress=True;";
            SQLiteConnection sqlite_conn = new SQLiteConnection(connection);
            string stringQuery = "Select * from Student";
            sqlite_conn.Open();
            var SqliteCmd = new SQLiteCommand();
            SqliteCmd = sqlite_conn.CreateCommand();
            SqliteCmd.CommandText = stringQuery;
            SQLiteDataAdapter da = new SQLiteDataAdapter(SqliteCmd);
            DataSet ds = new DataSet();               
            da.Fill(tb);

1 Comment

This will be usefull for Beginners. In simple way to accessing the SqliteConnection

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.