C#将表单中的数据插入到访问数据库中

Ken*_*tao 13 c# database ms-access-2007 winforms

我开始学习C#并且Access在使用单击按钮时将信息从文本框插入到数据库中变得困难.

我得到的问题是在添加过程中.代码执行该Try... Catch部分,然后返回错误说"Microsoft Access数据库引擎",并没有提供任何线索.

这是代码:

namespace WindowsFormsApplication1
{
    public partial class FormNewUser : Form
    {
        public FormNewUser()
        {
            InitializeComponent();
        }

        private void BTNSave_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection();
            conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\kenny\Documents\Visual Studio 2010\Projects\Copy Cegees\Cegees\Cegees\Login.accdb";

            String Username = TEXTNewUser.Text;
            String Password = TEXTNewPass.Text;

            OleDbCommand cmd = new OleDbCommand("INSERT into Login (Username, Password) Values(@Username, @Password)");
            cmd.Connection = conn;

            conn.Open();

            if (conn.State == ConnectionState.Open)
            {
                cmd.Parameters.Add("@Username", OleDbType.VarChar).Value = Username;
                cmd.Parameters.Add("@Password", OleDbType.VarChar).Value = Password;

                try
                {
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Data Added");
                    conn.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Source);
                    conn.Close();
                }
            }
            else
            {
                MessageBox.Show("Connection Failed");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Han*_*sUp 9

Password是一个保留字.括起该字段名称以避免混淆数据库引擎.

INSERT into Login (Username, [Password])
Run Code Online (Sandbox Code Playgroud)