更新SQL datagridview数据的按钮错误地更新行

时间:2017-02-28 04:09:21

标签: c# sql sql-server datagridview

我正在尝试使用用户输入的文本框值更新datagrid / sql表的选定行。可以使用下面的代码更新,但输入第一个文本框textBox1的值将输入到每个行/列中。 Imgur data for datagridview post update:

       case 'divide':
             try {
                if(!$this->b){
                    throw new Exception('Division by zero .');
                }
                    return $this->a / $this->b;
            } catch (Exception $e) {
                return $e->getMessage();
            }
            break;

enter image description here

1 个答案:

答案 0 :(得分:1)

要仅更新特定行,您必须指定一些条件来标识表中的行(主键将是此处的最佳选项)。您可以使用WHERE子句指定这些条件。我假设您要更新特定站点的用户名密码和其他详细信息,因此此处的条件将是站点列中的值。在这种情况下,查询将被修改如下:

SqlCommand update = new SqlCommand("UPDATE dbo.logins SET username = @username, pword = @pword, email = @email WHERE site = @site", connectiont);

update.Parameters.AddWithValue("@username", textBox1.Text);
update.Parameters.AddWithValue("@pword", textBox1.Text);
update.Parameters.AddWithValue("@email", textBox1.Text);
update.Parameters.AddWithValue("@site", textBox1.Text);

update.ExecuteNonQuery();

现在,代码将更新网站coulms具有指定值的行的详细信息。请记住,将密码保存为纯文本不是安全选项,请使用适当的加密方法使其安全。