Я пробовал все, гуглил несколько дней, но ничего, что я нашел, мне не помогло.
У меня есть Oracle 9i db, таблица TIME_UNITS, в которой есть несколько полей - для своих целей я использую только 3, определяемые как : КОД - VARCHAR2(6)
, FOR_IN - VARCHAR2(1)
, FOR_OUT - VARCHAR2(1)
. Мой код:
string strConString = "provider=MSDAORA;DSN=myDSN;user id=myUser;password=myPassword";
string strQuery = "UPDATE TIME_UNITS SET FOR_IN='Y', FOR_OUT='Y' WHERE CODE='202003'";
using (OleDbConnection oleDbConn = new OleDbConnection(strConString ))
using (OleDbCommand cmd = new OleDbCommand(strQuery, oleDbConn))
{
oleDbConn.Open();
cmd.Transaction = oleDbConn.BeginTransaction();
int rows = cmd.ExecuteNonQuery();
cmd.Transaction.Commit();
oleDbConn.Close();
}
ExecuteNonQuery возвращает одну строку, но когда я смотрю в БД с использованием sqldeveloper, ничего не меняется. То же утверждение прекрасно работает в sqldeveloper, используя те же учетные данные. Я пытался с и без транзакции begin-commit, но все еще без изменений в базе данных. Что я делаю не так?