创建原始表后的几个月,我需要添加一个额外的列(CB_NRP_Department)。当我尝试运行程序时,无法识别新列。请参阅下面的PopulateForm过程,以显示错误。
我收到异常错误
“ CB_NRP_Department”列不属于表Tbl_New_Employee_Database。
我什至从解决方案资源管理器中删除了“ xsd” New_EmployeesDataSet.xsd,然后重新创建了一个新的数据源。我犯了同样的错误。我需要怎么做才能使程序识别新列?我想念什么?
我检查了拼写错误,检查了现有列的数据源,验证了新列是否确实在表格中并正确拼写。我检查ComboBox的属性以检查语法错误。一切看起来不错。相似的ComboBox可以完美地工作。
由于我将原始表的位置从本地“ C”驱动器更改为网络驱动器,因此我也双击“我的项目”以查看设置。设置看起来也正确:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\nfmfile01\is_db\new_employees\New_Employees.mdb
由于我认为程序正在查看错误的表,因此我还将所有本地“ C”驱动器“ New_Employees.mdb”重命名为“ New_Employees_OLD.mdb”。
If Not IsDBNull(ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("Dt_NRP_DOB")) Then
Frm_New_Resident_Physicians.Dt_NRP_DOB.Value = ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("Dt_NRP_DOB")
End If
If ds.Tables.Contains("CB_NRP_Department") Then
MsgBox("Yep, it's there")
Else
MsgBox("Nop, Not there!!") '<- I get the Nop, Not there!!
End If
对于下一行代码,我收到错误消息:
SystemArgumentException:'列'CB_NRP_Department'不属于表Tbl_New_Employees_Database。
If Not IsDBNull(ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("CB_NRP_Department")) Then
Frm_New_Resident_Physicians.CB_NRP_Department.Text = ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("CB_NRP_Department")
End If
If Not IsDBNull(ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("Rad_NRP_Needs_Cerner_Credentials_Yes")) Then Frm_New_Resident_Physicians.Rad_NRP_Needs_Cerner_Credentials_Yes.Checked = ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("Rad_NRP_Needs_Cerner_Credentials_Yes")
If Not IsDBNull(ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("Rad_NRP_Needs_Cerner_Credentials_No")) Then Frm_New_Resident_Physicians.Rad_NRP_Needs_Cerner_Credentials_No.Checked = ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("Rad_NRP_Needs_Cerner_Credentials_No")
If Not IsDBNull(ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("CB_NRP_Person_to_Model_After")) Then
Frm_New_Resident_Physicians.CB_NRP_Person_to_Model_After.Text = ds.Tables("Tbl_New_Employees_Database").Rows(inc).Item("CB_NRP_Person_to_Model_After")
End If