Лучший способ ОБНОВИТЬ несколько строк в базе данных оракула, используя C # - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть список переменных идентификаторов. Я хочу обновить столбец «Состояние» для каждого из этих идентификаторов в базе данных Oracle. Я искал и встретил следующие варианты:

  • OracleDataAdapter - не имеет DataTable, только идентификаторы
  • для цикла, который содержит инструкцию UPDATE (может быть тысячи UPDATE)
  • Хранимая процедура - в надежде не делать этого

Любая помощь будет принята с благодарностью. Спасибо

Ответы [ 3 ]

0 голосов
/ 15 сентября 2011

Проверить эту тему.

https://forums.oracle.com/forums/thread.jspa?threadID=638673

В нем говорится об использовании массивов параметров, которые могут быть идеальными для того, что вы пытаетесь сделать.

0 голосов
/ 15 сентября 2011

Спасибо за ответы. Я хотел сделать это следующим образом, я просто хотел сохранить соединение открытым для стольких итераций.

using (OracleConnection oracleConnection = new OracleConnection(connection))
                {
                    oracleConnection.Open();

                    OracleCommand Command = new OracleCommand();
                    Command.Connection = oracleConnection;
                    Command.CommandType = CommandType.Text;
                    status = "A";
                    foreach (var memberID in MemberIDs)
                    {
                        sqlStatement = " UPDATE " + " ourdbtable" + " Set userstatus = '" + status + "' WHERE " + "memberid= " + memberID;
                        // command
                        Command.CommandText = sqlStatement;
                        Command.ExecuteNonQuery();
                    }
                }
0 голосов
/ 15 сентября 2011

Если вы уже знаете идентификаторы, вы можете создать предложение in и выполнить ExecuteScalar:

обновить статус некоторого набора = «Отправлено», где sometableid в (10,17,19,20,89)

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