通过迭代datagridview行来更新mysql

时间:2013-04-26 19:48:41

标签: c# mysql datagridview where

我有一个父母及其子女的数据库。每个父级都有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,而不是','

0 个答案:

没有答案