C# 更新查询:在错误列中更新值

C# 更新查询:在错误列中更新值,c#,ms-access,ado.net,C#,Ms Access,Ado.net,我正在成功地更新表,但由于某些原因,字段处于混乱的位置。 使用MS Access数据库2007在Visual Studio 2010 C#上工作 这是我的密码 OleDbCommand cm = new OleDbCommand(); cm.Connection = AccessConnection(); cm.Parameters.AddWithValue("vContactId", c.ContactId); cm.Param

我正在成功地更新表,但由于某些原因,字段处于混乱的位置。 使用MS Access数据库2007在Visual Studio 2010 C#上工作

这是我的密码

        OleDbCommand cm = new OleDbCommand();
        cm.Connection = AccessConnection();

        cm.Parameters.AddWithValue("vContactId", c.ContactId);
        cm.Parameters.AddWithValue("vFirstName", c.FirstName);
        cm.Parameters.AddWithValue("vLastName", c.LastName);
        cm.Parameters.AddWithValue("vAddress", c.Address);
        cm.Parameters.AddWithValue("vCity", c.City);
        cm.Parameters.AddWithValue("vState", c.State);
        cm.Parameters.AddWithValue("vCountry", c.Country);
        cm.Parameters.AddWithValue("vPinCode", c.PinCode);
        cm.Parameters.AddWithValue("vMobilePhone", c.MobilePhone);
        cm.Parameters.AddWithValue("vFax", c.Fax);
        cm.Parameters.AddWithValue("vOfficePhone", c.OfficePhone);
        cm.Parameters.AddWithValue("vHomePhone", c.HomePhone);
        cm.Parameters.AddWithValue("vCompany", c.Company);
        cm.Parameters.AddWithValue("vDesignation", c.Designation);
        cm.Parameters.AddWithValue("vEmail", c.Email);
        cm.Parameters.AddWithValue("vNotes", c.Notes);
        cm.Parameters.AddWithValue("vCategoryId", c.CategoryId);
        cm.Parameters.AddWithValue("vDtUpdated", c.dtUpdated);
        cm.Parameters.AddWithValue("vTitle", c.title);

        string q = "UPDATE tblContacts SET FirstName = vFirstName, LastName = vLastName, Address = vAddress, City = vCity, " +
                    "State = vState, Country = vCountry, PinCode = vPinCode, MobilePhone = vMobilePhone, Fax = vFax, " +
                    "OfficePhone = vOfficePhone, HomePhone = vHomePhone, Company = vCompany, Designation = vDesignation, " +
                    "Email = vEmail, Notes = vNotes, DtUpdated = vDtUpdated, CategoryId = vCategoryId, Title = vTitle" +
                    " WHERE ContactId=vContactId";
        cm.CommandText = q;

        if (!Exist(c))
        {
            cm.Connection.Open();
            cm.ExecuteNonQuery();
            cm.Connection.Close();
        }

我做错了什么?

OleDb忽略了参数的名称。它只识别参数在CommandText中的显示顺序。(参考号:)

您需要更改
.AddWithValue
语句的顺序,以便与CommandText中参数的显示顺序完全匹配