gpt4 book ai didi

c# - 未更新的行

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

我编写了以下函数来更新我数据库中的学生:

public bool UpdateStudent(Student stu)
{
Console.WriteLine("StudentManger.UpdateStudent): Called");

int rowsChanged = 0;

using (var cnn = new SqlConnection(
Properties.Settings.Default.universityConnectionString))
{
using (var cmd = new SqlCommand("UPDATE Student " +
"SET FirstName = @FirstName, " +
"lastName = @LastName, " +
"birth = @birth " +
"WHERE id = @id", cnn))
{
cmd.Parameters.Add(new SqlParameter("@FirstName", stu.FirstName));
cmd.Parameters.Add(new SqlParameter("@LastName", stu.LastName));
cmd.Parameters.Add(new SqlParameter("@id", stu.ID));
cmd.Parameters.Add(new SqlParameter("@birth", stu.Birth));

cnn.Open();
rowsChanged = (int)cmd.ExecuteNonQuery();
Properties.Settings.Default.Save();
}
}
Properties.Settings.Default.Save();
return (rowsChanged != 0);
}

但是当我调用函数时,实际上没有数据被保存到数据库中

谁能告诉我为什么?

最佳答案

使用您在 chat 中提供的完整解决方案和信息,你的代码没问题。问题是 .mdf 数据库文件在您的项目中设置为“复制到输出目录”:“始终”。将此属性更改为“Copy if newer”(或“Do not copy”并自己将其移动到 bin 文件夹),当您重新运行应用程序时它不会覆盖您的更改。重要的是,您不会看到您在应用程序中所做的更改反射(reflect)在项目根目录 中的 .mdf 数据库文件中。它实际上被复制到/bin 文件夹,这就是更改被保留的地方。因此,如果您不更改“复制到输出目录”属性,它会在您每次构建时从您的根目录复制到您的/bin 文件夹。因此,似乎更改并未被持久化,而实际上是这样。

关于c# - 未更新的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729953/

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