SqlDataSource InsertCommand和UpdateCommand抛出“非法变量名/数字”“

时间:2018-10-08 11:39:39

标签: vb.net sqldatasource updatecommand selectcommand

我正在尝试通过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 :(得分:0)

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)