inhalt von databind() wird in *.aspx datei nicht angezeigt

28/05/2008 - 18:23 von Walser Mark | Report spam
hallo ng

ich möchte in der aspx datei den namen, welchen ich in der aspx.vb via sql
statement auslese in einem <ItemTemplate> anzeigen
es wird mir nichts dargestellt.
wieso?
wie kann ich mit debug den inhalt SqlDS_Fachrichtung.DataBind() feststellen

bitte um hilfe.
vielen dank!!!
gruss mark

*********************************************************************************
aspx datei:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder"
Runat="Server">
<asp:SqlDataSource ID="SqlDS_Fachrichtung" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionGeronimo %>">
</asp:SqlDataSource>
<asp:DataList ID="dl_Fachrichtung" runat="server"
DataSourceID="SqlDataSource1">
<HeaderTemplate>
Fachrichtung
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("Name")%>
</ItemTemplate>
</asp:DataList>
</asp:Content>
*********************************************************************************
aspx.vb datei:
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
Handles Me.Load
' SQL Verbindung + SQLStatement
Dim sqlconnKlasse As New
SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionGeronimo").ConnectionString)

SqlDS_Fachrichtung.SelectCommand = "select fachrichtung.name as name
from dbo.FachgruppeTeilnehmer " _
& "inner join fachgruppe on
fachgruppe.id = FachgruppeTeilnehmer.fachgruppe " _
& "inner join fachrichtung on
fachrichtung.id = fachgruppe.fachrichtung " _
& "inner join klasse on
fachgruppe.klasse = klasse.id " _
& "where student = '" &
Session("PersonID") & "' and klasse.id = '" & Session("KlasseID") & "'"
SqlDS_Fachrichtung.DataBind()
End Sub
*********************************************************************************
 

Lesen sie die antworten

#1 Gerold Mittelstädt
28/05/2008 - 18:54 | Warnen spam
Hallo,

Walser Mark schrieb:
ich möchte in der aspx datei den namen, welchen ich in der aspx.vb via sql
statement auslese in einem <ItemTemplate> anzeigen
es wird mir nichts dargestellt.
wieso?
wie kann ich mit debug den inhalt SqlDS_Fachrichtung.DataBind() feststellen



Inhalt?

aspx datei:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder"
Runat="Server">
<asp:SqlDataSource ID="SqlDS_Fachrichtung" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionGeronimo %>">
</asp:SqlDataSource>



Wofür ist die DataSource?

<asp:DataList ID="dl_Fachrichtung" runat="server"
DataSourceID="SqlDataSource1">
<HeaderTemplate>
Fachrichtung
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("Name")%>
</ItemTemplate>
</asp:DataList>
</asp:Content>
*********************************************************************************
aspx.vb datei:
Protected Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
Handles Me.Load
' SQL Verbindung + SQLStatement
Dim sqlconnKlasse As New
SqlConnection(ConnectionStrings("ConnectionGeronimo").ConnectionString)

SqlDS_Fachrichtung.SelectCommand = [laaanges SQL-Statement]




"where student = '" & Session("PersonID") & "' and klasse.id = '" &
Session("KlasseID") & "'"

Sowas ist böse und anfàllig für SQL-Injeciton.
Verwende stattdessen Parameter. Erhöht auch die Lesbarkeit

"WHERE student=@PersionID AND klasse.id=@KlasseID"
.Parameters.AddWithValue("@PersonID",Session!PersonID)
usw.

SqlDS_Fachrichtung.DataBind()



Da passiert nichts, weil Du der DataList keine DateSource zuweist.

etwa:

Dim sCon As New SqlConnection(...)
Dim sCmd As New SqlCommand()
Try
sCmd.Connection=sCon
sCmd.CommandText="SELECT..."
sCmd.Parameters.AddWithValue(...)

sCmd.Open
Dim sRd As SqlDataReader=sCmd.ExecuteReader()

dl_Fachrichtung.DataSrouce=sRd
dl_Fachrichtung.DataBind()

Catch ex As Exception

Finally
sCon.Close
End Try

Viele Grüße!

Ähnliche fragen