2013-10-08 43 views
1

我正在制作一个数据库系统。我已经正确地实现了INSERT函数,但是当我尝试实现UPDATE函数时,我无法对数据库进行任何更改。我不知道我出错的地方。
注:用户名被声明为字符串MSAccess数据库更新不使用c更新#

下面是函数处理UPDATE:

private void btnUpdate_Click(object sender, EventArgs e) 
    { 

     string q = "UPDATE [registrationinfo] SET [Password]='?', [EmailAdd]='?', [HomeAdd]='?' WHERE [Username]='?'"; 

     OleDbConnection connect = new OleDbConnection(MyConnectionString); 
     connect.Open(); 
     try 
     { 
      OleDbCommand command = new OleDbCommand(q,connect); 

      command.Parameters.AddWithValue("@Password", txt_password.Text); 
      command.Parameters.AddWithValue("@EmailAdd", txt_eadd.Text); 
      command.Parameters.AddWithValue("@HomeAdd", txt_homeadd.Text); 
      command.Parameters.AddWithValue("Username", username); 

      command.ExecuteNonQuery(); 

      txt_password.Clear(); 
      txt_eadd.Clear(); 
      txt_homeadd.Clear(); 
      txt_conPass.Clear(); 
     } 
     catch (Exception ex) 
     { 
      connect.Close(); 
      MessageBox.Show(ex.Message.ToString()); 
     } 

     connect.Close();    
    } 

回答

3

当使用参数化查询你需要把单引号(')将文本参数你的CommandText,所以你应该使用这样的东西:

string q = "UPDATE [registrationinfo] SET [Password]=?, [EmailAdd]=?, [HomeAdd]=? WHERE [Username]=?"; 
+0

谢谢!这工作了...... :)非常感谢它......现在我可以毕业了...... ~~ – marijanluvlee

+1

@marijanluvlee不要忘了标记这是正确的答案,如果它回答你的问题。 –

+0

@TiesonT。完成... ~~ – marijanluvlee