Sunday, March 25, 2012

cant show data from my database

Hi

I have this code, but i can't get it to work, and if i delete <% %> then the if statsment is not working, how do i get this code to work.

1<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringMain%>"2 SelectCommand="SELECT [SiteMainID], [SiteMainText] FROM [MainSiteText] WHERE ([SiteMainID] = @.SiteMainID)">3<% Dim pageString As String = "Def"4 If Not (Request.QueryString("Page") Is Nothing) Then5 pageString = Request.QueryString("Page").ToString6 End If7 If pageString = "Def" Then8%>9 <SelectParameters>10 <asp:Parameter DefaultValue="1" Name="SiteMainID" Type="Int32" />11 </SelectParameters>12<%13 Else14 If pageString = "Page1" Then15%>16 <SelectParameters>17 <asp:Parameter DefaultValue="2" Name="SiteMainID" Type="Int32" />18 </SelectParameters>19<%20 Else21 If pageString = "Page2" Then22%>23 <SelectParameters>24 <asp:Parameter DefaultValue="3" Name="SiteMainID" Type="Int32" />25 </SelectParameters>26<%2728 End If29 End If30%>31</asp:SqlDataSource>

you can do it your sql if you want

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringMain%>"SelectCommand="SELECT [SiteMainID], [SiteMainText] FROM [MainSiteText] WHERE [SiteMainID] = (

SelectCase @.SiteMainIDWhen'Page1'Then 2When'Page2'Then 3Else 1End)">
<SelectParameters>
<asp:QueryStringParameterQueryStringField="Page"DefaultValue="Def"Name="SiteMainID"Type="String"/>
</SelectParameters>
|||

this might work too...

First remove all the code below the initial sqldatasource control code. in other words all the parameter code stuff.

Protected Sub SqlDataSource1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles SqlDataSource1.Init
Dim pageString As String = "Def"
If Not (Request.QueryString("Page") Is Nothing) Then
pageString = Request.QueryString("Page").ToString
End If
SqlDataSource1.SelectParameters.Clear()
If pageString = "Def" Then
SqlDataSource1.SelectParameters.Add(New WebControls.Parameter("SiteMainID", TypeCode.Int32, "1"))
Else
If pageString = "Page1" Then
SqlDataSource1.SelectParameters.Add(New WebControls.Parameter("SiteMainID", TypeCode.Int32, "2"))
ElseIf pageString = "Page2" Then
SqlDataSource1.SelectParameters.Add(New WebControls.Parameter("SiteMainID", TypeCode.Int32, "3"))
End If
End If
End Sub

|||

if u mean like this, then i get a codeblock error for the <% thats its not supported in this context:

1<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringMain%>"2 SelectCommand="SELECT [SiteMainID], [SiteMainText] FROM [MainSiteText] WHERE ([SiteMainID] = @.SiteMainID)">3<%4 Protected Sub SqlDataSource1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles SqlDataSource1.Init5 Dim pageString As String = "Def"6 If Not (Request.QueryString("Page") Is Nothing) Then7 pageString = Request.QueryString("Page").ToString8 End If9 SqlDataSource1.SelectParameters.Clear()10 If pageString = "Def" Then11 SqlDataSource1.SelectParameters.Add(New WebControls.Parameter("SiteMainID", TypeCode.Int32, "1"))12 Else13 If pageString = "Page1" Then14 SqlDataSource1.SelectParameters.Add(New WebControls.Parameter("SiteMainID", TypeCode.Int32, "2"))15 ElseIf pageString = "Page2" Then16 SqlDataSource1.SelectParameters.Add(New WebControls.Parameter("SiteMainID", TypeCode.Int32, "3"))17 End If18 End If19 End Sub20%>21</asp:SqlDataSource>

|||

Cant i use session !?

Like this:

<asp:Content ID="Main" ContentPlaceHolderID="ContentPlaceHolderMain" Runat="Server"><% Dim pageString As String = "Def" Dim PageID = CType(Session("pageid"), Integer) If Not (Request.QueryString("Page") Is Nothing) Then pageString = Request.QueryString("Page").ToString End If If pageString = "Def" Then PageID = "1" Else If pageString = "Page2" Then PageID = "2" Else If pageString = "Page3" Then PageID = "3" End If End If End If%><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringMain%>" SelectCommand="SELECT [SiteMainID], [SiteMainText] FROM [MainSiteText] WHERE ([SiteMainID] = '" & Session("pageid") & "')"></asp:SqlDataSource>
my only problem with this is that i get a "Attribute 'session' is not a valid attribute of the element 'SqlDateSource'"|||

Yes

You could bind SelectCommand to Session.

But I would do it in SqlDataSource1_DataBinding Event:

protected void SqlDataSource1_DataBinding(object sender, EventArgs e) { String sql ="SELECT column1 FROM test WHERE column1 ='" + Session["pageid"] +"'"; SqlDataSource1.SelectCommand = sql; }

You need to change it to VB.

Hope this helps.

No comments:

Post a Comment