Команда Microsoft Access UPDATE с использованием C # OleDbConnection и команда НЕ работают - PullRequest
3 голосов
/ 04 января 2011

Я использую Microsoft Access, к сожалению, из-за больших сил и безуспешно пытаюсь обновить запись.

Это код:

private void UpdateContact(Contact contact)
{
    using (OleDbConnection db = new OleDbConnection(_connString))
    {
        string query = "UPDATE [Contact] SET [FirstName] = @FirstName, [LastName] = @LastName, [MobileNumber] = @MobileNumber WHERE [Id] = @Id";

        OleDbCommand cmd = new OleDbCommand(query, db) { CommandType = CommandType.Text };
        cmd.Parameters.AddWithValue("@Id", contact.Id);
        cmd.Parameters.AddWithValue("@FirstName", contact.FirstName);
        cmd.Parameters.AddWithValue("@LastName", contact.LastName);
        cmd.Parameters.AddWithValue("@MobileNumber", contact.MobileNumber);

        db.Open();

        int rowsAffected = cmd.ExecuteNonQuery();

        db.Close();
    }
}

Кажется, все в порядке, без исключения, но и без строк. Всегда возвращает 0. Я проверил значения во время отладки и правильность, которая должна сохраняться. Файл доступа создан с помощью MS Access 2007, но его тип - 2002-2003.

Есть идеи, что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 04 января 2011

попробуй

string query = "UPDATE [Contact] SET [FirstName] = ? [LastName] = ?, [MobileNumber] = ? WHERE [Id] = ?"

Добавьте ваши параметры в порядке выписки, т.е. firstname ... id

3 голосов
/ 04 января 2011

Тебе нужно?для заполнителя и параметры должны быть добавлены в том порядке, в котором они встречаются: http://msdn.microsoft.com/en-us/library/dw70f090.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...