如何使用id代码更新?

时间:2013-06-26 06:57:36

标签: c# mysql

我的代码是这样的:当我在文件夹中创建文件时,数据库将获取有关该文件的信息。|

query = "INSERT INTO files (name,size,last_edit,extension) VALUES('" + name + "','" +  
size + "',now(),'" + extension + "')";

这是一个例子。 当我更改文件时,数据库将更新有关该文件的信息。 当我删除文件时,数据库将删除有关文件的信息

我的问题是:现在当我在文件夹中重命名时,如何在数据库中重命名?因为我无法想到在“Where ... =”中使用的任何东西 大小不会工作,名称不会工作(因为名称被更改),last_edit不会工作(因为它一直在变化),扩展不会工作(因为可能有多个文件具有相同的扩展名。所以我创建了一个主键(ID )

这就是我创建表格的方式:

create table files (ID int not null auto_increment,name varchar(50),size
int,last_edit datetime,extension varchar(5), primary key (id));

我以为我可以用ID做点什么。但我不知道如何确保他选择正确的身份证。

    private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e)
    {
        listBox1.Items.Add("File renamed> " + e.FullPath + " -Date:" + DateTime.Now);
        name = e.Name;
        extension = Path.GetExtension(e.FullPath);
        size = e.Name.Length;
        query = "update files set name='"+name+"' where ID=";
        query();
    }

我的活动已重命名。

1 个答案:

答案 0 :(得分:1)

据我所知,您需要在重命名文件时更新数据库。要在修改文件时收到通知,您可以使用System.IO.FileSystemWatcher类。

例如:

static void Main(string[] args)
{
    //Creating test file. Can be removed.
    File.WriteAllText("test.txt", "test");
    // object that will watch changes for your file on file system
    string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); //get current path.
    var watcher = new FileSystemWatcher(path);
    watcher.Renamed += watcher_Renamed;
    watcher.EnableRaisingEvents = true;
}

private static void watcher_Renamed(object sender, RenamedEventArgs e)
{
    // This event is fired when file is renamed. Do your own stuff here.
    Console.WriteLine(e.OldName + " => " + e.Name);
}

修改

private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e)
{
    listBox1.Items.Add("File renamed> " + e.FullPath + " -Date:" + DateTime.Now);
    name = e.Name;
    extension = Path.GetExtension(e.FullPath);
    size = e.Name.Length;
    query = "update files set name='"+name+"' where `name`='" + e.OldName + "'";
    query();
}