Я создаю веб-проект для одного из моих универсальных модулей с использованием Visual Studio 2010. Я использую членство в asp.net и правильно настроил все свои таблицы sql-сервера (я почти уверен).
У меня есть созданная мной форма, которая вставляется в базу данных с помощью sqlDataSource.insert ().Изначально у меня были некоторые проблемы с невозможностью вставить какие-либо данные в таблицу, но я все исправил.
Теперь моя проблема заключается в том, что мне нужно вставить идентификатор пользователя, вошедшего в систему в данный момент, в один изстолбцы таблицы.Но каждый раз, когда я нажимаю кнопку отправки, мне говорят, что я не могу вставить нулевые значения в столбец userID.
Я могу получить userID, используя этот фрагмент:
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
Как видите, это немного беспорядок, я судорожно пробовал разные варианты, так как мне нужно немного наверстать упущенное с другими унифицированными модулями.
Вот мой источник SQLDataSource со страницы .aspx. Параметры управления отлично работают для других данных, которые я вставляю.может быть <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 & css фона.