Трудно увидеть точно , так как вы не показываете свои входные данные; однако следующее явно опасно:
DateTime RegExp = Convert.ToDateTime(DtString);
string MyDtQry = "UPDATE MyTable SET exp_date='" + RegExp + "' where MyTable.id_no='" + AlmIDNo + "'";
Даже если мы замаскируем тот факт, что вы должны использовать параметры (вам действительно следует), вам нужно будет отформатировать эту дату так, как ожидает SQL-сервер - что может сильно отличаться от локального формата.
Тем не менее, не надо форматировать его! Используйте параметр для этого, и он уйдет. Это не должно быть сложно - например, с более щадящим :
DateTime RegExp = new DateTime(yr, mn, dt);
connection.Execute("UPDATE MyTable SET exp_date=@exp where MyTable.id_no=@id",
new { exp = RegExp, id = AlmIDNo });
и готово; полностью безопасен как для внедрения, так и (более вероятно, в этом случае) проблемы форматирования данных в виде строк.