Avatar billede Kristensen123 Nybegynder
20. februar 2011 - 23:42 Der er 8 kommentarer

GridView og MSSQL database

Hej alle eksperter. Jeg er løbet ind i et problem som jeg håber i kan hjælpe med.

Jeg har en database hvor jeg har en tabel med brugere på siden, også har jeg en anden tabel hvor man kan oprette ting i så vil jeg lave at et GridView hvor folk kan se de ting de har oprettet men kun de ting de selv har oprettet så de alser ikke kan se andres ting.. Hvordan laver jeg dette i aspx?
I tabellen med de ting man kan oprette har jeg lavet disse felter

Id - ID
Name - Navn
URL - URL
UserID - brugerens ID
Avatar billede arne_v Ekspert
21. februar 2011 - 03:41 #1
En WHERE betingelse på den SQL som henter data?
Avatar billede Kristensen123 Nybegynder
21. februar 2011 - 09:59 #2
Hvordan laver jeg den kommando i aspx? Har lavet den i asp og mysql og har forsøgt at lave det i aspx uden held indtil videre.
Avatar billede Kristensen123 Nybegynder
21. februar 2011 - 11:54 #3
Har prøvet med dette men virker ikke helt

SelectCommand="SELECT [Id], [Name], [URL], [UserID] FROM [Favorit] WHERE ([UserID] = @UserId)">

Der kommer intet frem
Avatar billede arne_v Ekspert
21. februar 2011 - 16:35 #4
Du opbygger dit data set med en data adapter med den SQL og sætter parameteren.
Avatar billede Red0z Nybegynder
27. februar 2011 - 02:04 #5
Nu er jeg mere erfaren med C#, så derfor har jeg skrevet et eksempel i det sprog, men du kan jo læse det af og prøve om det virker. Efter alt det som står her. Så skal dit DataGrid bare læse fra DS.Tables[0] eller DS.Tables["MyTable"]

Hvis det skaber mere forvirring kan du lige poste en stump kode med hvordan du har sat det op indtil videre :)

using System.Data;
using System.Data.SqlClient;


SqlConnection Conn = new SqlConnection("Indsæt 'ConnectionString' her");
            SqlDataAdapter sda = new SqlDataAdapter();
            DataSet DS = new DataSet();
            sda.SelectCommand = new SqlCommand("SELECT * FROM MyTable WHERE ID =" + TxtBox1.Text, Conn);
            sda.Fill(DS, "MyTable");
Avatar billede Kristensen123 Nybegynder
28. februar 2011 - 18:12 #6
Undskyld jeg først svare nu. Men fandt en løsning

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
        ConnectionString="Data Source=fjernet.dk;Initial Catalog=fjernet;User ID=fjernet;Password=fjernet"
        DeleteCommand="DELETE FROM [Favorit] WHERE [Id] = @Id"
        InsertCommand="INSERT INTO [Favorit] ([UserId], [Name], [URL], [List]) VALUES (@UserId, @Name, @URL, @List)"
        ProviderName="System.Data.SqlClient"
        SelectCommand="SELECT [Id], [UserId], [Name], [URL], [List] FROM [Favorit] WHERE ([UserId] = @UserId) ORDER BY [List]"
        UpdateCommand="UPDATE [Favorit] SET [Name] = @Name, [URL] = @URL, [List] = @List WHERE [Id] = @Id">
        <DeleteParameters>
            <asp:Parameter Name="Id" Type="Int32" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="UserId" Type="Object" />
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="URL" Type="String" />
            <asp:Parameter Name="List" Type="String" />
        </InsertParameters>
        <SelectParameters>
            <asp:Parameter Name="UserId" Type="Object" />
        </SelectParameters>
        <UpdateParameters>
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="URL" Type="String" />
            <asp:Parameter Name="List" Type="String" />
            <asp:Parameter Name="Id" Type="Int32" />
        </UpdateParameters>
    </asp:SqlDataSource>

og denne kode bagved

    Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting
        ' Get a reference to the currently logged on user
        Dim currentUser As MembershipUser = Membership.GetUser()

        ' Determine the currently logged on user's UserId value
        Dim currentUserId As Guid = CType(currentUser.ProviderUserKey, Guid)

        ' Assign the currently logged on user's UserId to the @UserId parameter
        e.Command.Parameters("@UserId").Value = currentUserId

    End Sub
Avatar billede Kristensen123 Nybegynder
28. februar 2011 - 18:22 #7
Ved ikke helt hvad jeg skal gøre med points da jeg fandt dette på nettet, men vil heller ikke snyde nogen for point da det du har lavet sikkert også virker
Avatar billede Kristensen123 Nybegynder
28. februar 2011 - 21:46 #8
Har et nyt problem i måske kan hjælpe med?

            Dim queryString As String = _
      "SELECT Id, UserID, Name, URL, List FROM dbo.Favorit WHERE Id=" & Request("Id")
            Using connection As New SqlConnection("Data Source=fjernet.dk;Initial Catalog=fjernet;User Id=fjernet;Password=fjernet;")
                Dim command As New SqlCommand(queryString, connection)
                connection.Open()

                Dim reader As SqlDataReader = command.ExecuteReader()
                ' Call Read before accessing data.

                If reader.HasRows Then
                    reader.Read()
                    Text__.Text = reader.GetString(reader.GetOrdinal("Name"))
                    mySrc = reader.GetString(reader.GetOrdinal("URL"))

                End If

                ' Call Close when done reading.
                reader.Close()
            End Using

Hvordan får jeg denne kode til at gøre så bruger Test1 ikke bare ændre aspx?Id=1 til eks aspx?Id=2 så man kan se data fra test2 brugeren? Kort sagt skal hver bruger kun kunne bruge sit eget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester