是什么阻止了 Combobox SelectedValue 的设置?

What is preventing Combobox SelectedValue from setting?

我有几个组合框,所有代码都相似,只有一个 CustomerSelector.SelectedValue 不工作。我什至尝试过这样设置值:CustomerSelector.SelectedValue=32.

该方法用于将所有项目信息加载到窗体中,在窗体加载事件中调用。数据似乎加载正常,我什至已将 'id' 加载到 DisplayMember 以进行验证。

知道是什么阻止了 SelectedValue 的设置吗?

        void loadProjectInfo()
        {
            if (isProjectInfoLoaded == false)
            {
                try
                {
                    DataTable dt4 = new DataTable();
                    DBConnector db4 = new DBConnector();
                    db4.query = "SELECT * FROM s1_pm_project WHERE id=" + JobID;
                    dt4 = db4.getDataTable();
                    DataRow PMProject = dt4.Rows[0];

                    ProjectNameTextbox.Text = PMProject["ProjectName"].ToString();
                    this.Text = ProjectNameTextbox.Text;

                    ProjectAddressTextbox.Text = PMProject["Address"].ToString();
                    ProjectAddressCity.Text = PMProject["City"].ToString();

                    ProjectAddressState.DataSource = USStates.States();
                    ProjectAddressState.ValueMember = "Abbreviations";
                    ProjectAddressState.DisplayMember = "Abbreviations";
                    ProjectAddressState.SelectedIndex = -1;
                    if (!Convert.IsDBNull(PMProject["State"]))
                        ProjectAddressState.SelectedValue = PMProject["State"].ToString();
                    ProjectAddressPostalCode.Value = (!Convert.IsDBNull(PMProject["ZipCode"])) ? Convert.ToInt32(PMProject["ZipCode"]) : 00000;

                    DBConnector db5 = new DBConnector();
                    db5.query = "SELECT id, Name FROM s1_customer ORDER BY Name ASC";
                    CustomerSelector.DisplayMember = "Name";
                    CustomerSelector.ValueMember = "id";
                    CustomerSelector.DataSource = db5.getDataTable();
                    CustomerSelector.SelectedIndex = -1;
                    //if (!Convert.IsDBNull(PMProject["CustomerID"]))
                    //    CustomerSelector.SelectedValue = Convert.ToInt32(PMProject["CustomerID"]);
                    CustomerSelector.SelectedValue=32;


                    DBConnector db1 = new DBConnector();
                    db1.query = "SELECT id, description FROM s1_app_status WHERE id < 2";
                    ProjectInfo_Status.DataSource = db1.getDataTable();
                    ProjectInfo_Status.DisplayMember = "description";
                    ProjectInfo_Status.ValueMember = "id";
                    ProjectInfo_Status.SelectedValue = Convert.ToInt32(PMProject["IsActive"]);

                    DBConnector db2 = new DBConnector();
                    db2.query = "SELECT id, description FROM s1_pm_roll";
                    ProjectInfoRollSelector.DataSource = db2.getDataTable();
                    ProjectInfoRollSelector.ValueMember = "id";
                    ProjectInfoRollSelector.DisplayMember = "description";
                    ProjectInfoRollSelector.SelectedIndex = -1;
                    if (Convert.ToInt32(PMProject["RollID"]) > 0)
                        ProjectInfoRollSelector.SelectedValue = Convert.ToInt32(PMProject["RollID"]);

                    DBConnector db3 = new DBConnector();
                    db3.query = "SELECT id, fullname FROM s1_user WHERE id>1";
                    ProjectInfoPMSelector.DataSource = db3.getDataTable();
                    ProjectInfoPMSelector.ValueMember = "id";
                    ProjectInfoPMSelector.DisplayMember = "fullname";
                    ProjectInfoPMSelector.SelectedIndex = -1;
                    if (Convert.ToInt32(PMProject["PMID"]) > 0)
                        ProjectInfoPMSelector.SelectedValue = Convert.ToInt32(PMProject["PMID"]);


                    ProjectInfoJobNoTextbox.Text = PMProject["JobNo"].ToString();
                    ProjectInfoValueTextbox.Value = Convert.ToDecimal(PMProject["ApproxValue"]);
                    if (!Convert.IsDBNull(PMProject["StartDate"]))
                        StartDateSelector.Value = Convert.ToDateTime(PMProject["StartDate"]);
                    if (!Convert.IsDBNull(PMProject["ProjectedEndDate"]))
                        ProjectedEndDateSelector.Value = Convert.ToDateTime(PMProject["ProjectedEndDate"]);
                    if (!Convert.IsDBNull(PMProject["EndDate"]))
                        EndDateSelector.Value = Convert.ToDateTime(PMProject["EndDate"]);
                    CustomerPOTextbox.Text = PMProject["CustomerPO"].ToString();
                    SalesTaxRateTextbox.Value = Convert.ToDecimal(PMProject["SalesTaxRate"]);
                    if (!Convert.IsDBNull(PMProject["WarrantyBegin"]))
                        WarrantyBegin.Value = Convert.ToDateTime(PMProject["WarrantyBegin"]);
                    if (!Convert.IsDBNull(PMProject["WarrantyEnd"]))
                        WarrantyEnd.Value = Convert.ToDateTime(PMProject["WarrantyEnd"]);
                    
                    loadContactList();

                }
                catch (Exception ex)
                {
                    Errors.Exception(ex);
                }

                isProjectInfoLoaded = true;
            }
        }

这是 SELECT id, Name FROM s1_customer ORDER BY Name ASC 的输出:

id Name
22 18-8 Sherman Oaks
206 Alejo Lugo
233 Americo Builders, LLC
235 AMS Solutions, Inc
1 ARRIS Builders, Inc.
209 Chris Thrower
105 CME Refrigeration Controls
53 Coastline Provisions
117 Cortech Construction, Inc
6 Development Support Services, Inc.
146 East Bay Restaurant Supply Inc
31 Fitness Mania
7 Fulcrum Construction
32 Hardesty & Associates, Inc.
135 Howards Appliances, Inc.
9 J Ray Construction
10 J&L Metal Products
12 Jahanna L. Nichols Interior Design, Inc
69 James Barb Construction, Inc
61 JRE Construction, Inc.
13 Kamran and Company, Inc.
15 LA Deli Distributors, Inc.
98 Lovisa America, LLC
40 Mobile Customer
120 N CORONA
180 N SANTA CLARA
5 N SERVICE SALE
129 Orangecrest Properties LLC
223 Other Customer
78 Pacific Westline, Inc.

来自SELECT * FROM s1_pm_project WHERE id=的输出:

id ProjectName IsActive CustomerID RollID PMID JobNo ApproxValue StartDate EndDate ProjectedEndDate CustomerPO SalesTaxRate EstimateID WarrantyBegin WarrantyEnd
141 Gorjana - Carlsbad 1 32 1 23 22199 37000.00 2022-02-07 2022-04-29 2022-04-29 22-012-23 0.00 NULL 2022-04-29 2023-04-29

问题最终出在数据库上,特别是 s1_customerid 字段。由于某种原因,它具有 'unsigned' 属性。删除后,一切都按预期工作。