Gå til innhold

Variabel i SqlDataSource


Anbefalte innlegg

Hei

 

Åssen bruker man en variabel i spørringen til en SqlDataSource?

Har prøv det meste bla:

" & UserID & "

<%$ UserID %>

osv

 

Bruker Dotnetnuke og UserID skal være tilgjengelig overalt.

I VB.net er det bare å skrive UserID så er den der, men får ikke slengt den med i spørringen i asp.net.

 

Er det mulig å bruke page_load til datasource isteden for en SqlDataSource/Object i en repeater?

Lenke til kommentar
Videoannonse
Annonse

Hehe, ok

 

Har en Repeater som har en Datasource:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource_Kanaler">

 

 

Det jeg lurer på er om jeg kan bruke page_load i steden for:

<asp:ObjectDataSource>

 

 

For jeg har en slik i codebehind fila:

Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("SiteSqlServer").ConnectionString)

Dim cmd As New SqlCommand("SELECT * FROM Tabel1, Tabel2 WHERE Tabel1.ItemID = Tabel2.ItemID AND Tabel1.UserID = " & UserId & "", conn)

conn.Open()

cmd.ExecuteNonQuery()

conn.Close()

End Using

End Sub

 

 

Er den UserID tingen som jeg ikke får tak i aspx fila.

 

Jeg kan ikke .net no særlig så jeg sliter :blush:

 

 

Var det no bedre forklaring?

Lenke til kommentar

Ja, det går ann. Men du må forandre litt på sub'n din.

 

ExecuteNonQuery betyr at du kjører en spørring som ikke skal returnere noe resultatsett. Og en SELECT setning skal ALLTID returnere et resultatsett :)

 

 

Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("SiteSqlServer").ConnectionString)
       Dim cmd As New SqlCommand("SELECT * FROM Tabel1, Tabel2 WHERE Tabel1.ItemID = Tabel2.ItemID AND Tabel1.UserID = " & UserId & "", conn)
       conn.Open()
       Using dr as SqlDataReader = cmd.ExecuteReader()
               Repeater1.DataSource = dr
               Repeater1.DataBind()
       End Using
       conn.Close()
   End Using
End Sub

Lenke til kommentar

Manfred:

Public ReadOnly Property UserID() As Integer.

Driver å lager custom moduler til dotnetnuke.

 

Jørn:

Får ingenting ut. Har testet spørringen så jeg vet den er riktig, men må jeg gjøre no mer med Repeatern?

<asp:Repeater ID="Repeater1" runat="server" >

Bruker bare sånne <%#Eval("Navn")%> der man vil ha det ut?

Endret av Tobba
Lenke til kommentar
Manfred:

Public ReadOnly Property UserID() As Integer.

Driver å lager custom moduler til dotnetnuke.

 

Jørn:

Får ingenting ut. Har testet spørringen så jeg vet den er riktig, men må jeg gjøre no mer med Repeatern?

<asp:Repeater ID="Repeater1" runat="server" >

Bruker bare sånne <%#Eval("Navn")%> der man vil ha det ut?

7138801[/snapback]

 

Du må binda dataen til repeater slik Jørn forklarte. Ellers vet ikke repeateren hvor den skal hente data.

 

Using dr as SqlDataReader = cmd.ExecuteReader()
              Repeater1.DataSource = dr
              Repeater1.DataBind()
      End Using

 

I tillegg må du selv lage html koden du ønsker at repeateren skal printe ut. Enkleste er selvfølgelig å bruke en DataGrid istedenfor Repeater så gjør den jobben for deg.

 

<table>
<asp:Repeater ID="Repeater1" runat="server" >
<HeaderTemplate>
<tr><th>ItemId</th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr><td><%# DataBinder.Eval(Container.DataItem, "ItemId"); %></td></tr>
</ItemTemplate>
</asp:Repeater>
</table>

 

EDIT: Skriveleif

Endret av alftore
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...