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 中看到了很多解决方案,但没有一个解决了我的问题,我自己非常努力地去做,但它仍然不起作用,请你能帮我解决这个问题吗?
您在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);
}