更新数据库访问,c#
本文关键字:访问 数据库 更新 | 更新日期: 2023-09-27 18:13:49
我试图在c#中更新我的访问数据库,我真的不知道为什么不工作。我的代码:
public void EditAlbum (Album newAlbum)
{
command.CommandText = "UPDATE Album SET [Name]=@Name, [Description]=@Description, [Location]=@Location, [Date]=@Date,[CoverPhotoURL]=@Cover WHERE [ID]=@Id";
command.Parameters.AddWithValue("@Name", newAlbum.Name);
command.Parameters.AddWithValue("@Description", newAlbum.Description);
command.Parameters.AddWithValue("@Location", newAlbum.Location);
command.Parameters.AddWithValue("@Data", newAlbum.Date);
command.Parameters.AddWithValue("@Id", newAlbum.ID);
command.Parameters.AddWithValue("@Cover", newAlbum.CoverPhoto);
command.ExecuteNonQuery();
}
我的数据库有下一个字段,按此顺序:ID,名称,描述,位置,日期,CoverPhotoURL。我没有收到任何错误信息,但这段代码什么也不做
问题在于您向集合添加参数的顺序。
OleDb不通过名称来识别参数,而只通过位置来识别参数。
因此,您需要按照它们各自占位符在查询
public void EditAlbum (Album newAlbum)
{
command.CommandText = @"UPDATE Album SET [Name]=@Name,
[Description]=@Description,
[Location]=@Location,
[Date]=@Date,
[CoverPhotoURL]=@Cover
WHERE [ID]=@Id";
command.Parameters.AddWithValue("@Name", newAlbum.Name);
command.Parameters.AddWithValue("@Description", newAlbum.Description);
command.Parameters.AddWithValue("@Location", newAlbum.Location);
command.Parameters.AddWithValue("@Data", newAlbum.Date);
command.Parameters.AddWithValue("@Cover", newAlbum.CoverPhoto);
// Moved after the Cover parameter
command.Parameters.AddWithValue("@Id", newAlbum.ID);
command.ExecuteNonQuery();
}