【问题标题】:TableAdapter Update never gets written to the tableTableAdapter 更新永远不会被写入表
【发布时间】:2015-03-18 00:18:24
【问题描述】:

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

在 PasswordRecover.xaml 中,用户必须输入当前密码和新密码并对其进行确认。要更新用户密码,我使用 btnConfirm_Click_1 方法。

更改密码后,返回主窗口屏幕。

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

感谢您的帮助。

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

【问题讨论】:

  • 我一直在研究这个,我发现属性复制到输出目录需要设置为“从不复制”,但是现在我收到以下错误尝试附加一个自动命名文件“pathTo\...\bin\Debug\DataBase\Library.mdf”的数据库失败。数据库文件夹不是上面指定的。但是我已经查看了连接字符串及其正确性。

标签: c# sql xaml ado.net tableadapter


【解决方案1】:

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

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

希望这对将来的其他人有所帮助!

保重。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多