【问题标题】:How to update data in access 2010 using c# in visual Studio 2019如何在 Visual Studio 2019 中使用 c# 更新 access 2010 中的数据
【发布时间】:2021-06-01 04:26:36
【问题描述】:

先生, 我编写了一个程序来更新我的 MS-Access 数据库中的数据。但它显示错误消息框。我的错是什么?我该如何解决。 我正在使用 MS-Access 2010。数据库格式 (.accdb)。其他信息:

  1. 表名称:user_info。
  2. 表的字段是:a) 名称 b) 名称 c) 用户名​​ d) 密码。
  3. Visual Studio 2019
  4. 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


【解决方案1】:

您最好尝试LINQ Connect Express 之类的方法,并让 VS 自动生成代码。

否则,您的提供程序似乎不是最新的,并且您更改了路径,所以我也看不出您是否正确。如果 LINQ Connect Express 不起作用,请从下面的代码段开始。

        string connectionString = @ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Your\Full\Path\Database.accdb";  

        // Create a connection    
        using(OleDbConnection connection = new OleDbConnection(connectionString)) { 
            // your code here
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    相关资源
    最近更新 更多