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)
Другие вопросы по тегам