如何在wpf中创建sqlite数据库?

时间:2015-07-07 10:36:21

标签: wpf sqlite

我是Windows桌面应用程序开发的新手。请您建议我如何在Windows演示文稿基础(wpf)中创建SQLite数据库?

2 个答案:

答案 0 :(得分:1)

你需要做两件事:

  1. 将SQLite dll添加到您的应用程序引用
  2. 编写一个构建Db的类。
  3. 例如:

    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);
            }
        }
      }
    }
    
    祝你好运!

答案 1 :(得分:0)

1.using System.Data;

2。使用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);