C# 从代码更新 MS Acess 数据,我的方法不起作用

本文关键字:我的 方法 不起作用 数据 Acess 代码 更新 MS | 更新日期: 2023-09-27 17:57:21

嗨,首先这是我的代码:

OleDbConnection conexao = new OleDbConnection();
try
{
    OleDbCommand comando = new OleDbCommand();
    comando.Connection = conexao;
    string query2 = "update Utilizador set Nome='" + nomeTextBox.Text + "' , DiaNascimento='" + diaNascimentoComboBox.Text + "'  ,MesNascimento='" + mesNascimentoComboBox.Text + "'  ,AnoNascimento='" + anoNascimentoComboBox.Text + "' , Altura='" + alturaTextBox.Text + "' , Sexo='" + sexoComboBox.Text + "' , Peso='" + pesoTextBox.Text + "' , CodGenetica='" + codGeneticaTextBox1.Text + "', Login='" + loginTextBox.Text + "'  , Password='" + passwordTextBox.Text + "' where CodUtilizador= " + codutilizaor.Text + "";
    string id = codutilizaor.Text;
    string command = "update Utilizador set Nome= '" + nomeTextBox.Text + "' , Login= " + loginTextBox.Text + " where CodUtilizador= '" + id + "'  ";
    conexao.Open();
    conexao.Close();
    this.Close();
}
catch (Exception ex)
{
    MessageBox.Show("Ya" + ex);
}

我想更新所有字段,但它不起作用,我在这里和 youtube 中看到了很多解决方案,但没有一个解决了我的问题,我自己非常努力地去做,但它仍然不起作用,请你能帮我解决这个问题吗?

C# 从代码更新 MS Acess 数据,我的方法不起作用

您在query2上缺少引号:

...where CodUtilizador= '" + codutilizaor.Text + "";

您还必须使用 ExecuteNonQuery(); 执行查询:

    ...
comando.Text=command;
comando.ExecuteNonQuery();

最后但并非最不重要的是考虑使用参数,因为您会接触到 SQL 注入。

例如:

string command = "update Utilizador set Nome= @None , Login=@Login where CodUtilizador=@ID";
 comando.Parameters.AddWithValue("@Nome", nomeTextBox.Text);
 comando.Parameters.AddWithValue("@Login", loginTextBox.Text);
 comando.Parameters.AddWithValue("@ID", id);

看起来您忘记将查询添加到命令中。你也忘了实际执行它。

OleDbConnection conexao = new OleDbConnection("Add your connection string here");
try
{
    string query = "update Utilizador set Nome='" + nomeTextBox.Text + "' , DiaNascimento='" + diaNascimentoComboBox.Text + "'  ,MesNascimento='" + mesNascimentoComboBox.Text + "'  ,AnoNascimento='" + anoNascimentoComboBox.Text + "' , Altura='" + alturaTextBox.Text + "' , Sexo='" + sexoComboBox.Text + "' , Peso='" + pesoTextBox.Text + "' , CodGenetica='" + codGeneticaTextBox1.Text + "', Login='" + loginTextBox.Text + "'  , Password='" + passwordTextBox.Text + "' where CodUtilizador='" + codutilizaor.Text + "'";
    conexao.Open();    
    var commandOne = new OleDbCommand(query, conexao);
    commandOne.ExecuteNonQuery() 
    conexao.Close();
    this.Close();
}
catch (Exception ex)
{
    MessageBox.Show("Ya" + ex);
}