0

Я создаю веб-проект для одного из моих модулей uni с помощью Visual studio 2010. Я использую членство asp.net и правильно настроил все мои таблицы sql-server (я уверен).Невозможно вставить руководство (идентификатор пользователя) в таблицу!

У меня есть форма, которую я создал сам, который вставляет в базу данных с помощью sqlDataSource.insert(). Сначала у меня были некоторые проблемы с невозможностью вставить какие-либо данные в таблицу, но я прояснил это.

Теперь моя проблема заключается в том, что мне нужно вставить текущий идентификатор пользователя пользователя в один из столбцов таблицы. Но каждый раз, когда я нажимаю кнопку отправки, мне говорят, что я не могу вставить нулевые значения в столбец 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 

Как вы можете видеть, что это немного беспорядок, я я отчаянно пытался изменить разные варианты, так как мне нужно немного догнать другие модули uni.

Вот мой 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 фон.

+0

Во-первых, какова структура вашей таблицы? Затем используйте Profiler, чтобы узнать, что именно отправляется SQl. Затем мы можем помочь вам понять, что не так с тем, что создается. – HLGEM

+0

'citationID = int, dateAdded = datetime, notes = ntext, essayTitle = varchar (128), isPrivate = бит, paperID = int, userID = uniqueidentifier' (есть ли лучший способ показать структуру, чем это в комментариях stackoverflow?) – Robin

ответ

0

С поставщиками членства ASP.NET вам не нужно беспокоиться о выполнении любого sql.

+0

Форма, которую я создал, вставлена ​​в одну из моих собственных таблиц. Пользователь может представить цитаты, которые они сделали, и мне нужно иметь возможность записывать их идентификатор пользователя в создаваемой записи. – Robin

Смежные вопросы