srinivas vadlamudi
srinivas vadlamudi

Reputation: 61

how to create sqlite database in wpf?

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

Upvotes: 3

Views: 14596

Answers (2)

Maghalakshmi Saravana
Maghalakshmi Saravana

Reputation: 813

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);

Upvotes: 2

DasDas
DasDas

Reputation: 581

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!

Upvotes: 5

Related Questions