2014-01-14 274 views
1

我有訪問數據庫,我嘗試用c#windows窗體應用程序將用戶添加到我的數據庫中。用戶數據不會被添加到數據庫中

當我添加新用戶時,它說用戶成功添加了,並且當我去DataConnections - dataBase.accdb - tables - employees(在c#中)時,新用戶被添加並且在那裏。

但是當我去我的項目文件/ bin /調試/數據庫,那裏沒有新用戶。這是爲什麼?爲什麼我在c#中有新用戶,爲什麼沒有用戶在調試/數據庫中,我該如何解決這個問題?

這裏是我的代碼

private void button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     OleDbConnection myConnection = new OleDbConnection("//CONNECTION PATH); 
     OleDbCommand cmd = new OleDbCommand(); 
     cmd.Connection = myConnection; 
     cmd.CommandText = "Insert into Employees (Name, LastName, UserName, Password, E_mail, Address)" + "values(@Name, @LastName, @UserName, @Password, @E_mail, @Address)"; 

     cmd.Parameters.AddWithValue("@Name", name.Text); 
     cmd.Parameters.AddWithValue("@LastName", lastName.Text); 
     cmd.Parameters.AddWithValue("@UserName", userName.Text); 
     cmd.Parameters.AddWithValue("@Password", pass.Text); 
     cmd.Parameters.AddWithValue("@E_mail", eMail.Text); 
     cmd.Parameters.AddWithValue("@Address", address.Text); 

     myConnection.Open(); 
     cmd.ExecuteNonQuery(); 
     MessageBox.Show("User successfully added."); 
     myConnection.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

您的插入查詢有語法錯誤...在最後刪除「,」befor「)」 –

+0

它沒有語法錯誤,**「,」**只是一個錯誤,因爲我必須從我的語言翻譯信息以英語,所以你們可以瞭解什麼是什麼。它工作,否則 – fkr

+0

你的dataBase.accdb放置在哪裏? –

回答

1

保持你的Access數據庫文件dataBase.accdb在一些其他的文件夾路徑,而不是document/bin/debug/database。由於在每次構建數據庫文件的新副本後都將其複製到bin文件夾中,因此每次成功構建後,最後的更改都會丟失。
檢查類似SO question.mdf數據庫文件。

+0

準確的解決方案:) –

+0

我的原始數據庫文件(我在訪問中創建的文件)不在bin/debug/database中...我的原始數據庫放置在別處**(documents/college/rgis/project/3) **比項目**(文件/ visual2013 /項目)** ...但我仍然有一個數據庫在我的調試...不知道爲什麼 – fkr

+0

@fkr檢查你的連接字符串,你提到它的路徑?它是'/ bin'文件夾的位置還是'documents/college/rgis/project/3'文件夾的位置?在每次成功構建之後,您可能會將更改回滾到原始數據庫文件,不是嗎? –

0

更換

cmd.CommandText = "Insert into Employees (Name, LastName, UserName, Password, E_mail, Address)" + "values(@Name, @LastName, @UserName, @GPassword, @E_mail, @Address,)"; 

cmd.CommandText = "Insert into Employees (Name, LastName, UserName, Password, E_mail, Address) values(@Name, @LastName, @UserName, @GPassword, @E_mail, @Address)";