SqlDataSource InsertCommand и UpdateCommand выбрасывают «недопустимую переменную имя / номер» - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь вставить и обновить таблицу через 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 при вставке новой записи?

Мне нужно обновить userid (Нужно получить из кода) и sysdate при обновлении записи в таблице?

Заранее спасибо.Любая помощь приветствуется ...!

1 Ответ

0 голосов
/ 08 октября 2018

DBNull.value вместо ''

или просто не указывать нулевые параметры.

РЕДАКТИРОВАТЬ 1: Я говорю вам использовать DBNull.value, но язабыл, что я использую его по коду

es.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)
...