【问题标题】:Insert current user ID into DB using ASP.NET Gridview使用 ASP.NET Gridview 将当前用户 ID 插入数据库
【发布时间】:2013-07-08 11:16:24
【问题描述】:

我需要使用 ASP.NET 4.5 将当前登录的用户 ID 插入到 Oracle 数据库表中。我在本地 AD 服务器上使用 Windows 身份验证。

当管理员用户单击 Override 按钮时,他们的 ID 需要插入到另一个表中(连同其他两个值),以便我们知道 进行了覆盖。那么这是否意味着我需要在运行 SqlDataSource 的插入命令的 Override 按钮上使用某种 OnClick() 方法?还是我必须完全以编程方式完成此操作(而不是使用 SqlDataSource 插入命令)?

这是我目前拥有的 GridView:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
                  CellPadding="6" DataSourceID="SqlDataSource" ForeColor="#333333" GridLines="None" PageSize="20"
                  DataKeyNames="PP_TRANS_REF_NUM" >
        <AlternatingRowStyle BackColor="White" />
        <Columns>
            <asp:TemplateField ShowHeader="false" >
                <ItemTemplate>
                    <asp:Button ID="btnOverride" runat="server" Text="Override" CssClass="pure-button pure-button-active" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="PP_TIMESTAMP" HeaderText="Timestamp" SortExpression="PP_TIMESTAMP" ReadOnly="True" />
            <asp:BoundField DataField="PP_CARD_CODE" HeaderText="Card Code" SortExpression="PP_CARD_CODE" ReadOnly="True" />
    ... (Extra Gridview columns, shortened for brevity.
</asp:GridView>

这是我的 SqlDataSource:

<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:CxString %>" ProviderName="<%$ ConnectionStrings:CxStringProviderName %>"
                   SelectCommand="SELECT * FROM Z_PCARD_PRELOAD"
                   InsertCommand="INSERT INTO Z_PCARD_OVERRIDE (PO_TIMESTAMP, PO_TRANS_REF_NUM, PO_AUTH_USERID) VALUES (:PP_TIMESTAMP, :PP_TRANS_REF_NUM, )"
                   FilterExpression="PP_MSG_CODE LIKE '%Z%'" >
    <InsertParameters>
        <asp:ControlParameter ControlID="GridView1" Name="PP_TIMESTAMP" PropertyName="SelectedValue" Type="String" />
        <asp:ControlParameter ControlID="GridView1" Name="PP_TRANS_REF_NUM" PropertyName="SelectedValue" Type="String" />
    </InsertParameters>
</asp:SqlDataSource>

【问题讨论】:

    标签: asp.net sql oracle gridview sqldatasource


    【解决方案1】:

    到目前为止,您所拥有的应该非常适合您。我认为您需要做的就是将 CommandName="Insert" 添加到您的 Button 控件:

    <asp:Button ID="btnOverride" runat="server" Text="Override" 
        CssClass="pure-button pure-button-active" CommandName="Insert" />
    

    这样,附加的 SqlDataSource 控件知道执行您为其设置的“InsertCommand”。

    【讨论】:

    • 很高兴我能帮上忙,@grantmc =)
    猜你喜欢
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 2015-07-31
    • 1970-01-01
    • 2017-08-12
    • 2013-11-21
    相关资源
    最近更新 更多