У меня дома нет настройки среды разработки, поэтому я не могу проверить свое предложение. Посмотрите, работает ли размещение этого на вашем sqlDataSource. ConflictDetection = "OverwriteChanges"
Пример:
<asp:SqlDataSource ID="DS" ConflictDetection="OverwriteChanges" runat="server">
</asp:SqlDataSource>
UPDATE:
Другая возможность состоит в том, что одно из ваших имен параметров слишком длинное. Предел длиной 31 или 32 символа. В прошлом, когда я динамически создавал список параметров, я просто давал соответствующему имени параметра общее имя (например, Param [x]) и увеличивал имя параметра с помощью цикла (например, Param1, Param2, Param3 и т. Д. для каждого параметра, который должен быть в выражении). Некоторые другие предложения могут быть проверены, чтобы ваши имена параметров, используемые из заголовка, были действительными (то есть без пробелов).
Моей последней мыслью будет то, что SqlDataSource несовместим. Используете ли вы System.Data.OracleClient ИЛИ Oracle.DataAccess.Client? Попробуйте использовать другого поставщика, чтобы увидеть, если это имеет значение.
См. Эти статьи для дополнительной помощи. Это обо всем, что я получил. Извините!
Oracle.DataAccess.Client и SqlDataSource в ASP.NET
при обновлении gridview создается ORA-01036: недопустимое имя / номер переменной
UPDATE:
Как предложено выше, попробуйте сменить поставщика данных, в этом случае попробуйте ODP.NET. Вам придется установить его. Это не системная библиотека. Поиск использования ODBC с Oracle может быть другим вариантом. В любом случае у вас, вероятно, не останется никаких вариантов, кроме как ничего не использовать с System.Data.OracleClient.
Исправлено! Oracle 11G и SqlDataSource: уродливый «ORA-01036: недопустимое имя / номер переменной» Выпуск
Поставщик данных Oracle для .NET