2013-10-08 48 views
1

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

因此:我想用我制作的第二个表单将我的数据添加到我的数据库中。

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

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

你得到任何异常或错误信息的连接? –

回答

2

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

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

作为一般性的推荐,不要在数据库中为您的标识符和对象名使用保留关键字。

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

} 

的保留关键字使用波浪号,你也需要设置的命令对象