我对数据库和 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 查询生成器生成的。
我将不胜感激任何建议!