似乎无法在表中插入guid(userID)!

时间:2011-02-10 17:19:57

标签: asp.net vb.net visual-studio sql-server-2008 asp.net-membership

我正在使用Visual Studio 2010为我的一个uni模块创建一个Web项目。 我正在使用asp.net成员资格并且我的所有sql-server表都设置正确(我很确定)。

我有一个自己创建的表单,使用sqlDataSource.insert()插入数据库。我最初遇到了一些问题,根本无法在表格中插入任何数据,但我已将其清除。

我现在的问题是我需要将当前登录用户的userID插入到表的一列中。但每次我点击提交按钮时,我都被告知我无法在userID列中插入空值。

我可以使用此代码段检索用户ID:

    Dim userID As String
    Dim memUser As MembershipUser
    memUser = Membership.GetUser()
    userID = memUser.ProviderUserKey.ToString()
    e.Command.Parameters(0).Value = userID

这是该页面背后的代码:

Public Class WebForm1
Inherits System.Web.UI.Page

'Dim userID As Guid = CType(memUser.ProviderUserKey, Guid)



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    'Dim UserID As Guid = CType(Membership.GetUser.ProviderUserKey, Guid)
    'memUser = Membership.GetUser()
    Dim userID As Guid


    Dim memUser As MembershipUser
    memUser = Membership.GetUser()
    userID = memUser.ProviderUserKey

    If IsPostBack() Then
        Session.Add("UserID", userID)
    Else
        userID = Session("UserID")
    End If

    TextBox1.Text = userID.ToString


End Sub
Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting
    e.Command.Parameters(0).Value = userID

End Sub
Protected Sub buttonInsertCitation_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonInsertCitation.Click


    SqlDataSource1.Insert()
End Sub
End Class

你可以看到它有点混乱,我一直在疯狂地尝试不同的变化,因为我需要跟上其他uni模块。

这是来自.aspx页面的SQLDataSource,控件参数适用于我插入的其他数据。也许<asp:parameter name="userID" />错了?

<InsertParameters>
        <asp:parameter name="userID" />
        <asp:ControlParameter ControlID="textNotes" Name="notes" PropertyName="Text" />
        <asp:ControlParameter ControlID="textEssayTitle" Name="essayTitle" PropertyName="Text" />
        <asp:ControlParameter ControlID="radioIsPrivate" Name="isPrivate" PropertyName="Text" />
        <asp:ControlParameter ControlID="dropPaperID" Name="paperID" PropertyName="Text" />
</InsertParameters>

我对vb比较新,我来自一个html&amp; css背景。

1 个答案:

答案 0 :(得分:0)

使用ASP.NET成员资格提供程序,您无需担心执行任何sql。