我有一个父母及其子女的数据库。每个父级都有ParentID作为主键。每个孩子都有ChildID作为他们的主键,以及父母的ParentID。
我有以下更新:
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connect;
command.CommandText = "update database.Child set surname =@lname, first =@name, DOB =@DB, Age =@Ae, Swimteam =@Swmteam, AAU =@AU, lessons =@lssons where ParentID = '"+Properties.Settings.Default.editID+"'";
command.Parameters.Add(new MySqlParameter("lname", MySqlDbType.VarChar));
command.Parameters.Add(new MySqlParameter("name", MySqlDbType.VarChar));
command.Parameters.Add(new MySqlParameter("DB", MySqlDbType.VarChar));
command.Parameters.Add(new MySqlParameter("Ae", MySqlDbType.VarChar));
command.Parameters.Add(new MySqlParameter("swmteam", MySqlDbType.Int16));
command.Parameters.Add(new MySqlParameter("AU", MySqlDbType.Int16));
command.Parameters.Add(new MySqlParameter("lssons", MySqlDbType.VarChar));
connect.Open();
foreach (DataGridViewRow row in editChildview.Rows)
{
if (!row.IsNewRow)
{
command.Parameters["lname"].Value = row.Cells["surname"].Value;
command.Parameters["name"].Value = row.Cells["first"].Value;
command.Parameters["DB"].Value = row.Cells["DOB"].Value;
command.Parameters["Ae"].Value = row.Cells["Age"].Value;
command.Parameters["Swmteam"].Value = row.Cells["Swimteam"].Value;
command.Parameters["AU"].Value = row.Cells["AAU"].Value;
command.Parameters["lssons"].Value = row.Cells["lessons"].Value;
command.ExecuteNonQuery();
}
}
connect.Close();
}
因为我更新了WHERE ParentID = x
,所以我所做的任何更改也适用于每个兄弟。我弄清楚或找到一个例子的问题是如何更新WHERE ParentID = x, ChildID = 'each rows child id value'
。我希望这不是一个愚蠢的问题!我找不到googleing的任何例子,可能是因为我不确切知道要找什么。让我知道,我会发布Q和A的plethera以及我尝试过的演练......
顺便提一下,感谢您的帮助!在阅读QnA时,我了解了参数化查询的重要性! :)
修改 其中ParentID ='“+ Properties.Settings.Default.editID +”' AND ChildID = @ ChldId“;
当WHERE语句有多个参数
时,我发现语法是AND,而不是','