C#保存数据以访问数据库

时间:2013-10-08 10:35:43

标签: c# database ms-access visual-studio-2012 save

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

所以:我想用我的第二种形式将我的数据添加到我的数据库中。

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

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

2 个答案:

答案 0 :(得分:2)

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

Microsoft Access上的

NameFunctionPasswordreserved keywords。你应该像方括号一样使用它们; [Name][Function][Password]

作为一般推荐,请勿在数据库中使用保留关键字作为标识符和对象名称。

答案 1 :(得分: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();

}
保留关键字的

使用波形标记,您还需要为命令对象

设置连接
相关问题