1

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

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);
  }

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

有人能告诉我为什么吗?

4

1 回答 1

3

使用您在chat中提供的整个解决方案和信息,您的代码就可以了。问题是 .mdf 数据库文件在您的项目中设置为“复制到输出目录”:“始终”。将此属性更改为“如果较新则复制”(或“请勿复制”并自行将其移动到 bin 文件夹),并且在您重新运行应用程序时它不会覆盖您的更改。重要的是,您不会在项目根目录中的 .mdf 数据库文件中看到您在应用程序中所做的更改。它实际上被复制到 /bin 文件夹中,这就是更改保存的地方。因此,如果您不更改“复制到输出目录”属性,那么每次构建时它都会从您的根目录复制到您的 /bin 文件夹。更改并没有被持久化,而实际上它们是。

于 2012-05-24T03:32:11.367 回答