gpt4 book ai didi

c# - 更新数据库访问,c#

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:08 25 4
gpt4 key购买 nike

我正在尝试用 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();
}

关于c# - 更新数据库访问,c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24851306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com