OleDbConnection con = new OleDbConnection(constring)
con.Open()
cmdstring = "UPDATE table SET date="+DateTime.Parse(txtdate.Text).ToString("dd/MM/yyyy") + " WHERE id = 1"
OleDbCommand cmd = new OleDbCommand(cmdstring,con)
cmd.ExecuteNonQuery()
con.Close()
Когда я пытаюсь обновить таблицу, используя этот код в одной из моих форм, это делается отлично. Но в другой форме я использую тот же код для обновления той же таблицы и одного столбца, но я получаю запутанную ошибку. Синтаксическая ошибка (отсутствующий оператор)C# Access DateTime UPDATE через DateTime.Parse
Пример: Дата в txtbox: 17.1.1987
Дата по ошибке: 17.1.198
DateTime.Parse нормально. Я попробовал, что он возвращает. Он возвращает 4-значный год. Но что происходит при обновлении доступа db?
С уважением ...
использовать это => "UPDATE таблица SET дата = CONVERT (DateTime,«" + txtdate.Text +" ', 104) WHERE ID = 1" –
Вы, вероятно, потребуется пробел перед WHERE в вашем примере. В фактическом коде, поскольку вы объединяете строку SQL, вам нужно проверить окончательный оператор SQL для любых синтаксических ошибок до его выполнения. – Alex
Оба входа будут работать, как вы показали нам. Вам понадобится немного больше информации. Было бы полезно увидеть всю «cmdstring» для неудачного случая. При этом вы должны, вероятно, параметризовать свои запросы. Это не только безопаснее, но и более аккуратно и легче рассуждать. – Rob