更新查询会更新除名称之外的所有记录

时间:2017-07-27 20:45:21

标签: c# sql windows-forms-designer

我遇到了更新问题。当我使用SQL打开在C#中开发的Windows窗体时,更新会更新所有字段,但不会更新名称。你能告诉我我做错了吗?

这是我的代码

    public void cc()
    {
        cbBname.Items.Clear();

        SqlCommand cmd = new SqlCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select * from BkhurData";
        db.ExeNonQuery(cmd);

        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        foreach (DataRow dr in dt.Rows)
        {
            cbBname.Items.Add(dr["Name"].ToString());
        }
    }

    private void BkhurUpdate_Click(object sender, EventArgs e)
    {
        SqlCommand cmd = new SqlCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "update BkhurData set Name='" + tbBpname.Text + "',Details='" + tbBpdetails.Text + "',Price='" + tbBpprice.Text + "',Size='" + tbBpsize.Text + "', Quantity ='"+tbBpquantity.Text+"' where Name = '" + tbBpname.Text + "'";
        db.ExeNonQuery(cmd);

        tbBpname.Text = "";
        tbBpdetails.Text = "";

        tbBpprice.Text = "";
        tbBpsize.Text = "";
        tbBpquantity.Text = "";


        cc();

        MessageBox.Show("updated successfully");
    }

1 个答案:

答案 0 :(得分:0)

您正在更新Name等于Name的{​​{1}},因此不会更改您要更新的行的名称。

tbBpname.Text

请注意,您应该使用SqlParameters而不是将查询构建为字符串。