Asp.net 在数据库中发送用户名

Asp.net 在数据库中发送用户名,asp.net,vb.net,Asp.net,Vb.net,我有一个detailsview,其中启用了“编辑/新建”。在“New”上,除了数据库行中的其他额外信息外,我还试图发送当前登录的用户名。目前,它保持为空 这是我的密码: <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="700px" AutoGenerateRows="False" DataKeyNames="ID" DataSourceID="AccessDat

我有一个detailsview,其中启用了“编辑/新建”。在“New”上,除了数据库行中的其他额外信息外,我还试图发送当前登录的用户名。目前,它保持为空

这是我的密码:

<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="700px" 
        AutoGenerateRows="False" DataKeyNames="ID" 
        DataSourceID="AccessDataSource2" AllowPaging="True" CssClass="mdtlstblwithhlines">
        <Fields>
            <asp:TemplateField HeaderText="Rating" SortExpression="Rating">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Rating") %>'></asp:TextBox>
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Rating") %>'></asp:TextBox>
                </InsertItemTemplate>
                <ItemTemplate>
                 <asp:Rating ID="Rating1" CurrentRating= '<%# Bind("Rating") %>'
                        runat="server" EmptyStarCssClass="EmptyStar" 
                        FilledStarCssClass="FilledStar" StarCssClass="Star" 
                        WaitingStarCssClass="WaitingStar" AutoPostBack="True" Enabled="True" 
                        EnableTheming="True" ReadOnly="True">
                    </asp:Rating>

                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="TheGood" HeaderText="TheGood" 
                SortExpression="TheGood" />
            <asp:BoundField DataField="TheBad" HeaderText="TheBad" 
                SortExpression="TheBad" />
            <asp:BoundField DataField="TheBottomLine" HeaderText="TheBottomLine" 
                SortExpression="TheBottomLine" />
            <asp:BoundField DataField="DatePosted" HeaderText="DatePosted" 
                SortExpression="DatePosted" />
            <asp:BoundField DataField="LastUpdate" HeaderText="LastUpdate" 
                SortExpression="LastUpdate" />
            <asp:TemplateField HeaderText="UserName" SortExpression="UserName" Visible="False">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("UserName") %>'></asp:TextBox>
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("UserName") %>' ></asp:TextBox>
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("UserName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

            <asp:CommandField ShowEditButton="True" ShowInsertButton="True" />
        </Fields>
    </asp:DetailsView>

   </div>


<asp:AccessDataSource ID="AccessDataSource2" runat="server" 
    DataFile="~/App_Data/ReviewSite.accdb" 
    SelectCommand="SELECT * FROM [ReviewsCam] WHERE ([ItemID] = ?)" 
        DeleteCommand="DELETE FROM [ReviewsCam] WHERE [ID] = ?" 
        InsertCommand="INSERT INTO [ReviewsCam] ([ItemID], [UserID], [UserName], [Rating], [TheGood], [TheBad], [TheBottomLine], [DatePosted], [LastUpdate]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)" 
        UpdateCommand="UPDATE [ReviewsCam] SET [ItemID] = ?, [UserID] = ?, [UserName] = ?, [Rating] = ?, [TheGood] = ?, [TheBad] = ?, [TheBottomLine] = ?, [DatePosted] = ?, [LastUpdate] = ? WHERE [ID] = ?">
    <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="ItemID" Type="Int32" />
        <asp:Parameter Name="UserID" Type="String" />
        <asp:Parameter Name="UserName" Type="String" />
        <asp:Parameter Name="Rating" Type="Int32" />
        <asp:Parameter Name="TheGood" Type="String" />
        <asp:Parameter Name="TheBad" Type="String" />
        <asp:Parameter Name="TheBottomLine" Type="String" />
        <asp:Parameter Name="DatePosted" Type="DateTime" />
        <asp:Parameter Name="LastUpdate" Type="DateTime" />
    </InsertParameters>
    <SelectParameters>
        <asp:QueryStringParameter Name="ItemID2" QueryStringField="ID" Type="Int32" />
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="ItemID" Type="Int32" />
        <asp:Parameter Name="UserID" Type="String" />
        <asp:Parameter Name="UserName" Type="String" />
        <asp:Parameter Name="Rating" Type="Int32" />
        <asp:Parameter Name="TheGood" Type="String" />
        <asp:Parameter Name="TheBad" Type="String" />
        <asp:Parameter Name="TheBottomLine" Type="String" />
        <asp:Parameter Name="DatePosted" Type="DateTime" />
        <asp:Parameter Name="LastUpdate" Type="DateTime" />
        <asp:Parameter Name="ID" Type="Int32" />
    </UpdateParameters>
</asp:AccessDataSource>

使用会话变量将用户名存储在代码隐藏中,如下所示

Dim crntuser As String = ""
crntuser = Login1.UserName.ToString
Session.Add("User", crntuser)


<InsertParameters>
    <asp:Parameter Name="ItemID" Type="Int32" />
    <asp:Parameter Name="UserID" Type="String" />
    <asp:SessionParameter Name="UserName" SessionField="User" Type="String" />
    <asp:Parameter Name="Rating" Type="Int32" />
    <asp:Parameter Name="TheGood" Type="String" />
    <asp:Parameter Name="TheBad" Type="String" />
    <asp:Parameter Name="TheBottomLine" Type="String" />
    <asp:Parameter Name="DatePosted" Type="DateTime" />
    <asp:Parameter Name="LastUpdate" Type="DateTime" />
</InsertParameters>
Dim crntuser As String=“”
crntuser=Login1.UserName.ToString
Session.Add(“用户”,crntuser)

使用会话变量将用户名存储在代码隐藏中,如下所示

Dim crntuser As String = ""
crntuser = Login1.UserName.ToString
Session.Add("User", crntuser)


<InsertParameters>
    <asp:Parameter Name="ItemID" Type="Int32" />
    <asp:Parameter Name="UserID" Type="String" />
    <asp:SessionParameter Name="UserName" SessionField="User" Type="String" />
    <asp:Parameter Name="Rating" Type="Int32" />
    <asp:Parameter Name="TheGood" Type="String" />
    <asp:Parameter Name="TheBad" Type="String" />
    <asp:Parameter Name="TheBottomLine" Type="String" />
    <asp:Parameter Name="DatePosted" Type="DateTime" />
    <asp:Parameter Name="LastUpdate" Type="DateTime" />
</InsertParameters>
Dim crntuser As String=“”
crntuser=Login1.UserName.ToString
Session.Add(“用户”,crntuser)
试试这个

  Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs )

        SqlDataSource1.InsertParameters("UserName").DefaultValue = User.Identity.Name

  End Sub
试试这个

  Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs )

        SqlDataSource1.InsertParameters("UserName").DefaultValue = User.Identity.Name

  End Sub

如何根据会话变量编辑我的查询?我的意思是,在我将其存储在变量中之后,如何将其发送回数据库?从代码隐藏中添加插入参数,如
AccessDataSource2.InsertParameters.add(“用户名”,会话(“用户”))
或者您可以使用
SessionParameter
而不是在插入特定用户名的参数中使用
参数
,这将是如何根据会话变量编辑我的查询的最简单方法?我的意思是,在我将其存储在变量中之后,如何将其发送回数据库?从代码隐藏中添加插入参数,如
AccessDataSource2.InsertParameters.add(“用户名”,会话(“用户”))
或者您可以使用
SessionParameter
而不是在插入特定用户名的参数中使用
参数
,这是最简单的方法