【发布时间】:2018-03-24 00:00:54
【问题描述】:
所以我正在为我的最后一年项目开发一个音乐播放器。它有一个 SQlite 数据库来存储专辑和曲目信息。下面的代码是一个更新函数,允许在移动轨道时更新轨道的文件路径。但是,虽然它没有返回错误,但数据库中的文件路径无法更新。关于可能出现什么问题的任何想法?
private void updateTrackFilePath(int albumid, String name, String filepath)
{
sql = "update tracks set filepath = (@filepath) where trackid = (@trackid)";
mCommand = new SQLiteCommand(sql, mdbConnection);
mCommand.CommandType = CommandType.Text;
mCommand.Parameters.AddWithValue("@filepath", filepath);
mCommand.Parameters.AddWithValue("@trackid", getTrackId(name, albumid));
mCommand.ExecuteNonQuery();
}
【问题讨论】:
-
你的 mdbConnection 是什么?可能是它指向另一个数据库
-
因为
mCommand不是在那里创建的,看起来你正在重用它?这是一个坏主意,因为它可能有 3 个或 5 个或 N 个参数从上次使用中遗留下来。根据需要创建、使用和处置它们(与 Connection 对象相同)。AddWithValue也是一个坏主意,尤其是使用 SQLIte -
什么是
name?albumid?filepath?getTrackId(name, albumid)?
标签: c# database sqlite command