c#中数据表的更新命令不起作用

本文关键字:命令 不起作用 更新 数据表 | 更新日期: 2023-09-27 18:10:07

我对数据库和c#的世界比较陌生,我有一个问题,根据我通过c#程序所做的更改来更新我的数据表。我正在使用TableAdapter向数据库发出命令。

在我的程序中,我有一个允许向数据表添加新行的表单。据我所知,这是有效的,因为我的程序的其余部分可以通过查询数据库来访问新信息。

    this.patientInfoTableTableAdapter.InsertNewPatient(
                this.FirstName, this.LastName, this.StreetAddress, this.City, this.State, this.Zip,
                this.Email, this.Phone, this.DOB, this.Gender);

我甚至可以停止程序的运行并重新启动它,并且仍然可以访问添加的数据。但是,当我直接查看数据表时,添加的行不在那里,并且下次运行程序时,表也已恢复到程序眼中的未修改状态。

我确实有一个更新方法,我每次都使用这个过程,但它没有效果,无论是保留添加的行还是对现有行的任何更改:

    this.Validate();
    this.patientInfoTableBindingSource.EndEdit();
    this.tableAdapterManager.UpdateAll(this.eMRSDatabaseDataSet);
    MessageBox.Show("Update Successful");

我总是看到MessageBox出现,我没有得到任何错误。

我已经得出结论,我的数据库的一些设置或属性是错误的,我可以使用一些帮助来解决我的问题。

如果有帮助,数据库查询所涉及的代码如下:

    INSERT INTO [PatientInfoTable] ([First_Name], [Last_Name], [Street_Address], [City], [State], [Zip], [Email], [Phone], [DOB], [Gender]) VALUES (@fName, @lName, @sAddress, @city, @state, @zip, @email, @phone, @dob, @gender)

    UPDATE       PatientInfoTable
    SET                Street_Address = @saddress, City = @city, State = @state, Zip = @zip, Email = @email, Phone = @phone, Gender = @gender
    WHERE        (Patient_ID = @p11)

这些查询是使用Visual Studio查询生成器生成的。

我将非常感谢任何建议!

c#中数据表的更新命令不起作用

query = "Update mcm_class Set class_status='" + 
dgv.Rows[i].Cells[1].ToString() + "' where class_id ='" + 
dgv.Rows[i].Cells[0].ToString() + "'"+ "AND"+" med_id='" + 
lst_med.SelectedValue.ToString() + "'";
cmd = new SqlCommand(query, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();