【问题标题】:My Update button is not working我的更新按钮不起作用
【发布时间】:2017-09-20 00:49:57
【问题描述】:

以下是保存按钮事件处理程序:

private void btnSave_Click(object sender, EventArgs e)
{
        MySqlConnection con = new MySqlConnection(MyConnectionString);
        MySqlCommand cmd;
        con.Open();

        if (txtFN.Text != "" && txtMN.Text != "" && txtLN.Text != "" && txtAge.Text != "" && txtReligion.Text != "" && cmbGender.Text != "" && dateTimePicker1.Text != "" && cmbGrade.Text != "" && cmbStrands.Text != "" && txtPlaceBirth.Text != "" && txtHomeAddress.Text != "" && txtNameLastSchool.Text != "" && txtAddressLastSchool.Text != "")
        {
            cmd = new MySqlCommand("UPDATE tbluser set FirstName, MiddleName, LastName, Age, Religion, Gender, BirthDay, Grade, Strand, PlaceBirth, HomeAddress, NameLastSchool, AddressLastSchool) values (@fname, @mname, @Lname, @Age, @Religion, @Gender, @Birthday, @Grade, @Strand, @PlaceBirth, @HomeAddress, @NameLastSchool, @AddressLastSchool", con);
            cmd.Parameters.AddWithValue("@fname", txtFN.Text);
            cmd.Parameters.AddWithValue("@Mname", txtMN.Text);
            cmd.Parameters.AddWithValue("@Lname", txtLN.Text);
            cmd.Parameters.AddWithValue("@Age", txtAge.Text);
            cmd.Parameters.AddWithValue("@Religion", txtReligion.Text);
            cmd.Parameters.AddWithValue("@Gender", cmbGender.Text);
            cmd.Parameters.AddWithValue("@Birthday", dateTimePicker1.Text);
            cmd.Parameters.AddWithValue("@Grade", cmbGrade.Text);
            cmd.Parameters.AddWithValue("@Strand", cmbStrands.Text);
            cmd.Parameters.AddWithValue("@PlaceBirth", txtPlaceBirth.Text);
            cmd.Parameters.AddWithValue("@HomeAddress", txtHomeAddress.Text);
            cmd.Parameters.AddWithValue("@NameLastSchool", txtNameLastSchool.Text);
            cmd.Parameters.AddWithValue("@AddressLastSchool", txtAddressLastSchool.Text);
            cmd.ExecuteNonQuery();
            con.Close(); 
            MessageBox.Show("Record Updated Successfully"); 
            MessageBox.Show("Please Select Record to Update");
        }  
    }

但是代码没有按照我的预期工作。 我错过了什么?

【问题讨论】:

  • 您的 SQL 语法不正确。应该是这样的……UPDATE tbluser SET FirstName = @fname, MiddleName = @Mname...

标签: c# xampp


【解决方案1】:

UPDATE DML 命令使用以下语法:

UPDATE [table_name] SET [assignment_list]

或者如果您想更新现有记录:

UPDATE [table_name] SET [assignment_list] WHERE [condition]

因此,正确的语法应该是这样的:

cmd = new MySqlCommand("UPDATE tbluser SET FirstName = @fname, MiddleName = @mname, LastName = @Lname, Age = @Age, Religion = @Religion, Gender = @Gender, BirthDay = @Birthday, Grade = @Grade, Strand = @Strand, PlaceBirth = @PlaceBirth, HomeAddress = @HomeAddress, NameLastSchool = @NameLastSchool, AddressLastSchool = @AddressLastSchool WHERE UserId = @UserId", con);

cmd.Parameters.AddWithValue("@fname", txtFN.Text);

// other parameters

cmd.Parameters.AddWithValue("@UserId", txtID.Text); // example for assigning record ID
cmd.ExecuteNonQuery();

显示的查询看起来像是在尝试执行INSERT 查询,但由于语法不正确,它会抛出异常。

【讨论】:

  • 请在您的问题正文中显示异常消息。是否包含类似Fatal error encountered during command execution 的消息?
  • 嘿嘿嘿抱歉我已经解决了这个问题。无论如何,谢谢你帮了我很多:)
  • tetsu 我怎样才能让我的保存按钮,只要特定的文本框被填满,即使其他文本框没有填满也会被保存
  • 您可以使用 if-condition 来检查相应的文本框内容,或者将其中的一些内容设为可选(通过删除控件中的Required 属性或类似的东西)。
  • 你能帮我为我还不习惯c#的情况编写代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多