1

如何将我的数据添加到我的数据库中?我使用一个访问数据库,此时我有一个列表视图并将我的数据从我的数据库中获取到我的列表视图中。我制作了第二个表单应用程序,用于在这种情况下添加用户。

所以:我想用我制作的第二种表格将我的数据添加到我的数据库中。

这是我的代码。你能帮我么?

namespace Test_login
{
    public partial class AddUser : Form
    {
        public AddUser()
        {
            InitializeComponent();
        }
        private void BtnSaveUser_Click(object sender, EventArgs e)
        {
            {
                OleDbConnection connect = new OleDbConnection();
                connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Daniel\Dropbox\Project Barroc-IT\Database\Barroc-IT Database.accdb";
                string QueryText = "INSERT INTO Users (Name,Surname,Department,Function,Staffcode,Password) values (@Name,@Surname,@Department,@Function,@Staffcode,@Password)";
                connect.Open();
                using (OleDbCommand command = new OleDbCommand(QueryText))
                {
                    try
                    {
                        OleDbDataAdapter da = new OleDbDataAdapter("INSERT INTO Users", connect);

                        String Name = Name_textbox.Text;
                        String Surname = Surname_textbox.Text;
                        String Department = Department_textbox.Text;
                        String Function = Function_textbox.Text;
                        String Staffcode = Staffcode_textbox.Text;
                        String Password = Password_textbox.Text;

                        command.Parameters.AddWithValue("@Name", this.Name_textbox.Text);
                        command.Parameters.AddWithValue("@Surname", this.Surname_textbox.Text);
                        command.Parameters.AddWithValue("@Department", this.Department_textbox.Text);
                        command.Parameters.AddWithValue("@Function", this.Function_textbox.Text);
                        command.Parameters.AddWithValue("@Staffcode", this.Staffcode_textbox.Text);
                        command.Parameters.AddWithValue("@Password", this.Password_textbox.Text);

                        command.ExecuteNonQuery();
                        connect.Close();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        connect.Close();
                    }
                }
            }
        }
    }
}
4

2 回答 2

2

你没有提到你的问题,但是,

Name,Function并且Password是Microsoft Access 上的保留关键字。您应该将它们与方括号一起使用,例如;[Name],[Function][Password]

作为一般建议,不要对数据库中的标识符和对象名称使用保留关键字。

于 2013-10-08T10:43:22.817 回答
1

你可以做如下

string sqlQuery = "INSERT INTO Users (`Name`,`Surname`,Department,`Function`,Staffcode,`Password`) values (?,?,?,?,?,?)";
using (OleDbConnection conn = new OleDbConnection("your connection string"))
using(OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
{
    conn.Open();
    cmd.Parameters.AddWithValue("@Name", this.Name_textbox.Text);
    cmd.Parameters.AddWithValue("@Surname", this.Surname_textbox.Text);
    cmd.Parameters.AddWithValue("@Department", this.Department_textbox.Text);
    cmd.Parameters.AddWithValue("@Function", this.Function_textbox.Text);
    cmd.Parameters.AddWithValue("@Staffcode", this.Staffcode_textbox.Text);
    cmd.Parameters.AddWithValue("@Password", this.Password_textbox.Text);

    cmd.ExecuteNonQuery();

}

对于保留关键字,请使用波浪号,您还需要为命令对象设置连接

于 2013-10-08T11:25:47.903 回答