【发布时间】:2021-06-01 04:26:36
【问题描述】:
先生, 我编写了一个程序来更新我的 MS-Access 数据库中的数据。但它显示错误消息框。我的错是什么?我该如何解决。 我正在使用 MS-Access 2010。数据库格式 (.accdb)。其他信息:
- 表名称:user_info。
- 表的字段是:a) 名称 b) 名称 c) 用户名 d) 密码。
- Visual Studio 2019
- C#
我的尝试代码是:
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Shahid_Abdul_Hamid_Hall_1._1
{ 公共部分类 ChangePassword : 表单
{
OleDbConnection conn = new OleDbConnection();
public ChangePassword(String User)
{
InitializeComponent();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\SAHHDB1.accdb;Persist Security Info=False;";
lvl_user.Text = User;
}
private void ChangePassword_Load(object sender, EventArgs e)
{
}
private void btn_cancel_Click(object sender, EventArgs e)
{
this.Hide();
}
private void btn_change_Click(object sender, EventArgs e)
{
if (txt_new_pass.Text == txt_cnew_pass.Text)
{
try
{
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "update user_info set Password = '"+ txt_new_pass.Text + "' where User_Name = '"+ lvl_user.Text + "'";
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ew)
{
MessageBox.Show("Error" + " " + ew);
}
}
else
{
MessageBox.Show("'Confirm New Password' dosen't Match 'New Password'. Try Again.");
}
}
}
}
【问题讨论】:
-
Alawal,到底是什么错误?您是否尝试调试过
btn_change_Click方法 - 哪一行代码出现错误? -
请使用参数防止sql注入。尝试输入带有 ' 的密码
-
错误消息通常包含有关问题的有用信息。这指出了修复它的方法。所以这是重要的信息,但你没有包含它
-
终于解决了。我只是删除 MS Access 数据库。并使用 sql 数据库。在 sql DB 中没问题。
标签: c# ms-access-2010 visual-studio-2019 windows-forms-designer