TableAdapter Update永远不会写入表中

时间:2015-03-18 00:18:24

标签: c# sql xaml ado.net tableadapter

我有以下代码来更新用户密码。我的应用程序以MainWindow.xaml开头,它有一个登录屏幕和一个更改密码按钮。更改密码按钮打开PasswordRecover.xaml,但保持MainWindow.xaml打开。

在PasswordRecover.xaml中,用户必须输入当前密码和新密码以及对其的确认。要更新用户密码,请使用方法btnConfirm_Click_1。

更改密码后,返回MainWindow屏幕。

当我登录程序时只接受新密码时,它会拒绝旧密码,但是当应用程序关闭时,表中的用户密码没有更新。

感谢您的帮助。

using System.Data;
using System.Data.SqlClient;
using System.IO;
using Library.DataBase.dsLibraryTableAdapters;
using Library.DataBase;    

tbUsersTableAdapter tableAdapterUsers = new tbUsersTableAdapter();
dsLibrary.tbUsersDataTable dataTableUsers;

private void btnConfirm_Click_1(object sender, RoutedEventArgs e)
{
     dataTableUsers = tableAdapterUsers.getDataByUserName(lblUser.Content.ToString());
     tbUsersRow = (dsLibrary.tbUsersRow)dataTableUsers.Rows[0];
     tbUsersRow.userPassword = txtNewPassword.Password.ToString();
     tableAdapterUsers.Update(dataTableUsers);
}

1 个答案:

答案 0 :(得分:1)

经过几个小时的研究,对我有用的解决方案是:

  1. 右键单击解决方案资源管理器中的.mdf文件,然后选择“属性”;
  2. 将设置复制到输出目录更改为"不要复制";
  3. 在App.config中编辑您的连接字符串,替换" | DataDirectory | \ DataBase \ Library.mdf"使用.mdf文件的完整路径,例如C:\ DataBase \ Library.mdf。
  4. 希望将来帮助其他人!

    小心。