将SQLite数据库连接到c#

cgyqldqp  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(235)

我正在尝试制作一个非常简单的Windows应用程序,它可以跟踪在Windows上花费的时间,我对C#还很陌生,现在我想
来制作这样的东西:

discord:60min  
valorant:90min  
etc

这就是现在所拥有的,你可以在这里查看文件结构:
enter image description here

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.SQLite;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace SqliteDatabase1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            //createTable();
            addrow();
        }

        static void createTable()
        {
            string db = "Data Source=demo.db";
            SQLiteConnection cnn = new SQLiteConnection(db);
            cnn.Open();
            string tbl = "CREATE TABLE Program (id integer primary key, Name varchar(20));";
            SQLiteCommand command = new SQLiteCommand(tbl, cnn);
            command.ExecuteNonQuery();
            cnn.Close();
        }

        public void addrow()
        {
            string db = "Data Source=.\\demo.db";

            using (var connection = new SQLiteConnection(db))
            {
                connection.Open();

                string cmd = "insert into names (name, id) values ('idf if itw worked', 7);";
                SQLiteCommand command = new SQLiteCommand(cmd, connection);
                command.ExecuteNonQuery();
            }
        }
    }
}

这是我用来向数据库中的表添加行的代码,问题是如果将数据库的源代码更改为完整路径,例如:D: ..\\\\..\\\\..\\\\Demo.db,数据库也会随着bin文件夹中创建的数据库沿着更新。但如果我使用相对路径,它不会像预期的那样工作,即它不会更新原始数据库,而只更新bin文件夹中创建的数据库。如果我遗漏了查找解决方案所需的某些内容,请告诉我。我会更新问题

0tdrvxhp

0tdrvxhp1#

它是这样工作的,因为当你运行程序的时候,你的当前目录是BIN。你有.//demo.db,它再次在同一个BIN目录中搜索。所以你必须确保相对路径也指向实际的数据库。你可以通过使用Directory.GetCurrentDirectory方法获得当前目录名。

相关问题