SqlDataSource InsertCommand и UpdateCommand выбрасывают "недопустимую переменную имя / номер"
Я пытаюсь вставить и обновить таблицу через SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" OnSelecting="SqlDataSource1_Selecting" runat="server" ConnectionString="<%$ ConnectionStrings:ORAConnString %>" ProviderName="<%$ ConnectionStrings:ORAConnString.ProviderName %>"
SelectCommand="SELECT DEPT_NAME,CATEGORY_NAME FROM SDIX_TCKT_CATEGORY"
InsertCommand="Insert into SDIX_TCKT_CATEGORY (DEPT_NAME,CATEGORY_NAME,MODIFIED_BY,MODIFIED_DTTM) values(:DEPTNAME,:CATEGORYNAME,'','')"
UpdateCommand="Update SDIX_TCKT_CATEGORY set CATEGORY_NAME=:CATEGORYNAME,MODIFIED_BY='',MODIFIED_DTTM=SYSDATE where(DEPT_NAME=:DEPTNAME) " >
<InsertParameters>
<asp:Parameter Name="DEPTNAME" />
<asp:Parameter Name="CATEGORYNAME" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="DEPTNAME" />
<asp:Parameter Name="CATEGORYNAME" />
<asp:Parameter Name="MODIFIED_BY" />
<asp:Parameter Name="MODIFIED_DTTM" />
</UpdateParameters>
</asp:SqlDataSource>
Мне нужно вставить нулевое значение для MODIFIED_BY,MODIFIED_DTTM при вставке новой записи?
Мне нужно обновить идентификатор пользователя (необходимо получить из кода) и sysdate при обновлении записи в таблице?
Заранее спасибо. Любая помощь приветствуется...!
1 ответ
DBNull.value
вместо ''
или просто не указывайте нулевые параметры.
РЕДАКТИРОВАТЬ 1: Я говорю вам использовать DBNull.value, но я забыл, что я использую его по коду
эс. YourSqlcommand.Parameters.AddWithValue("@ParameterName", DBNull.value)
так что в вашем sql обновлении или вставке, вероятно, вы должны использовать Sql NULL
:
Insert into SDIX_TCKT_CATEGORY (DEPT_NAME,CATEGORY_NAME,MODIFIED_BY,MODIFIED_DTTM) values(:DEPTNAME,:CATEGORYNAME,NULL,NULL)