Oledb更新命令

我做了一个程序,保存和更新数据库中的数据,我可以保存和读取数据,我也可以更新,但问题是,我不能选择"ID"作为索引,这里是我的示例代码使用"ID"作为索引,

 cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "UPDATE Records SET FirstName = @firstname, LastName = @lastname, Age = @age, Address = @address, Course = @course WHERE [ID] = @id"; cmd.Parameters.AddWithValue("@id", int.Parse(label7.Text)); cmd.Parameters.AddWithValue("@firstname", textBox1.Text); cmd.Parameters.AddWithValue("@lastname", textBox2.Text); cmd.Parameters.AddWithValue("@age", textBox3.Text); cmd.Parameters.AddWithValue("@address", textBox4.Text); cmd.Parameters.AddWithValue("@course", textBox5.Text); cmd.Connection = cn; cn.Open(); cmd.ExecuteNonQuery(); { MessageBox.Show("Update Success!"); cn.Close(); } 

这是我的更新代码,但索引是"firstname"

 cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "UPDATE Records SET FirstName = @firstname, LastName = @lastname, Age = @age, Address = @address, Course = @course WHERE FirstName = @firstname"; //cmd.Parameters.AddWithValue("@id", int.Parse(label7.Text)); cmd.Parameters.AddWithValue("@firstname", textBox1.Text); cmd.Parameters.AddWithValue("@lastname", textBox2.Text); cmd.Parameters.AddWithValue("@age", textBox3.Text); cmd.Parameters.AddWithValue("@address", textBox4.Text); cmd.Parameters.AddWithValue("@course", textBox5.Text); cmd.Connection = cn; cn.Open(); cmd.ExecuteNonQuery(); { MessageBox.Show("Update Success!"); cn.Close();` } 

它的工作原理但问题是我无法更新"FirstName" ,有没有办法可以更新名字? 或使用"ID"作为索引? 谢谢

我不知道你要反对什么数据库,但是,我不知道OleDB是否在你的参数的序数序列上挑剔。 即:您是否尝试将“ID”参数放在最后一个位置以匹配更新命令字段的实际顺序? 我不知道是不是把它丢掉了。

您应该在ID的最后一行之后添加以下代码:

 cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "UPDATE Records SET FirstName = @firstname, LastName = @lastname, Age = @age, Address = @address, Course = @course WHERE [ID] = @id"; cmd.Parameters.AddWithValue("@firstname", textBox1.Text); cmd.Parameters.AddWithValue("@lastname", textBox2.Text); cmd.Parameters.AddWithValue("@age", textBox3.Text); cmd.Parameters.AddWithValue("@address", textBox4.Text); cmd.Parameters.AddWithValue("@course", textBox5.Text); cmd.Parameters.AddWithValue("@id", int.Parse(label7.Text)); cmd.Connection = cn; cn.Open(); cmd.ExecuteNonQuery(); { MessageBox.Show("Update Success!"); cn.Close(); }