Oledb更新命令
问题描述:
我做了一个程序,保存和更新数据库中的数据,我可以保存和读取数据,我也可以更新但问题是,我不能选择"ID"
作为索引,这里是我的使用"ID"
作为指数样本代码,Oledb更新命令
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();
}
但在删除命令,我可以成功删除使用'“ID”',我没有错误在更新,但它不是更新, – Pyromancer 2013-02-28 03:27:41
是的,你是对的,它抛出了第一个参数的值,我把'cmd.Parameters.AddWithValue(“@ id”,label7.Text);'放在最后一行,它现在可以完美工作了, 谢谢 :) – Pyromancer 2013-02-28 03:33:40