我有两个数据库。 其中只有一列将存储 fizic 位置,我已将其连接到下拉菜单。 第二个包含多列的所有产品,其中之一是位置。
我想为我的第一个表添加更新位置名称,更新后,第二个表中位于该位置的所有产品的位置名称也会更改。
不幸的是,我所尝试的只是创建一个新位置,而将旧位置保留在原处。 在第二张桌子上,什么也没有发生。
NameLabel 具有从之前的表单收到的当前位置名称。 文本框有我要更新的新名称。
private void Update_location_Click(object sender, EventArgs e)
{
con.Open();
string name = NameLabel.Text;
SqlCommand dataAdapter = new SqlCommand("UPDATE dbLocation SET loc_name = @loc_name WHERE loc_name = '" + name + "'", con);
dataAdapter.Parameters.AddWithValue("@loc_name", textbox_location.Text);
dataAdapter.ExecuteNonQuery();
SqlCommand dataAdapter2 = new SqlCommand("UPDATE DB_Main SET Location = @location WHERE Location = '" + name + "'", con);
dataAdapter2.Parameters.AddWithValue("@location", textbox_location.Text);
dataAdapter2.ExecuteNonQuery();
con.Close();
MessageBox.Show("Location updated!");
this.Close();
}
有两件事。
更新条件应基于ID。
更新 dbLocation SET loc_name = @loc_name WHERE loc_id = loc_id
第二个表应该只包含 ID 而不是位置名称,这样如果位置名称发生更改,它将自动反映在第二个表中(如果您使用了 join。)