C#中数据表的更新命令无法正常工作

时间:2013-04-21 05:38:33

标签: c# database

我对数据库和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);

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

我确实有一个每次运行此过程时都使用的Update方法,但它对保留添加的行或对现有行的任何更改都没有影响:

    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查询构建器生成的。

我非常感谢任何建议!

1 个答案:

答案 0 :(得分:-1)

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();