我正在尝试制作一个非常简单的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文件夹中创建的数据库。如果我遗漏了查找解决方案所需的某些内容,请告诉我。我会更新问题
1条答案
按热度按时间0tdrvxhp1#
它是这样工作的,因为当你运行程序的时候,你的当前目录是BIN。你有
.//demo.db
,它再次在同一个BIN目录中搜索。所以你必须确保相对路径也指向实际的数据库。你可以通过使用Directory.GetCurrentDirectory方法获得当前目录名。