行未更新
本文关键字:更新 | 更新日期: 2023-09-27 18:35:21
我编写了以下函数,旨在更新数据库中的学生:
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);
}
但是当我调用函数时,实际上没有数据保存到数据库中
有人可以告诉我为什么吗?
有了您在聊天中提供的整个解决方案和信息,您的代码就可以了。 问题是.mdf数据库文件在项目中设置为"复制到输出目录":"始终"。将此属性更改为"如果较新则复制"(或"不复制"并将其自行移动到 bin 文件夹),当您重新运行应用程序时,它不会覆盖您的更改。重要的是,您不会看到在应用程序中所做的更改反映在项目根目录中的.mdf数据库文件中。它实际上被复制到/bin 文件夹,这就是保留更改的位置。 因此,如果您不更改"复制到输出目录"属性,则每次构建时,它都会从根目录复制到/bin 文件夹。因此,更改似乎没有被保留,而实际上它们却被保留了。