HDSoftware Skrevet 9. april 2008 Del Skrevet 9. april 2008 Heisan folkens. Jeg er i ferd med å lage en webside for meg selv der jeg vil hente artikler fra en SQL server. Artikklene er lagret som HTML. Hvordan får jeg til dette tro? mvh Ole Lenke til kommentar
Ståle Skrevet 9. april 2008 Del Skrevet 9. april 2008 http://www.tizag.com/mysqlTutorial/mysqlselect.php Lenke til kommentar
HDSoftware Skrevet 10. april 2008 Forfatter Del Skrevet 10. april 2008 Ser poenget ditt, men ser også at jeg kansje ikke var spesifert nok Jeg bruker MSSQL (skulle ikke bety noe) ASP.NET (Visual Studio2005 med C#) og ikke PHP, så ECHO har ingen effekt her. Andre forslag Lenke til kommentar
hockey500 Skrevet 10. april 2008 Del Skrevet 10. april 2008 Så alt du skal gjøre er å hente ut data fra en tabell? Letteste er vel å bruke DataReader objektet her, så får du en read-only stream fra databasen. SqlConnection connection = newSqlConnection("myconnectionstringhere"); SqlCommand command = newSqlCommand("SELECT * FROM Customers", connection); connection.Open(); SqlDataReader data = command.ExecuteReader(CommandBehavior.CloseConnection); while( data.Read() ) { // Print ut data her } data.Dispose(); connection.Close(); Lenke til kommentar
Ståle Skrevet 10. april 2008 Del Skrevet 10. april 2008 Ah, sa ikke at det var ASP, beklager http://aspnet101.com/aspnet101/aspnet/code...?code=mysqlcode Lenke til kommentar
GeirGrusom Skrevet 10. april 2008 Del Skrevet 10. april 2008 Response.Write burde vel fungere? Lenke til kommentar
Manfred Skrevet 10. april 2008 Del Skrevet 10. april 2008 (endret) Ah, sa ikke at det var ASP, beklager http://aspnet101.com/aspnet101/aspnet/code...?code=mysqlcode Det ligger i .net forumet?? ang. koden til hockey5000: using(SqlConnection connection = newSqlConnection("myconnectionstringhere")) { connection.Open(); SqlCommand command = newSqlCommand("SELECT * FROM Customers", connection); using(SqlDataReader data = command.ExecuteReader(CommandBehavior.CloseConnection)) { while( data.Read() ) { // Print ut data her - data["feltnavn1"].ToString(), osv.... (eller data[1], data[2]....) } } } Du bør bruke using, hvis du ikke har noen veldig gode grunner til å ikke gjøre det. Edit: Response.Write() legger inn teksten OVER <html> og slikt... Bør heller bruke en asp:Literal eller noe i GUI-fila, og bruke idTilLiteral.Text += ... Endret 10. april 2008 av Manfred Lenke til kommentar
kaffenils Skrevet 10. april 2008 Del Skrevet 10. april 2008 Response.Write burde vel fungere? Kommer vel an på hvilken Page event du "Response.Write"r i. Min erfaring er at hvis du gjør det i Load eventen så er ikke resten av siden rendret, og dermed vil alt havne i begynnelsen av html koden. Jeg ville heller brukt en Repeater for å presentere artiklene. Lenke til kommentar
HDSoftware Skrevet 10. april 2008 Forfatter Del Skrevet 10. april 2008 Har problemer med å forstå dette konseptet fordi C# koden ligger i en separat fil og dermed blir det liksom helt annerledes en PHP, som bare plasserer resultatet der hvor PHP koden ligger. Response.write høres på en måte riktig ut i mine ører, men jeg vet ikke helt hvor jeg skal legge dette. Se for dere følgende side: ASPX fil: <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ArticlePage.aspx.cs" Inherits="ArticlePage" Title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MenuAreaLeftTop" Runat="Server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainArea" Runat="Server"> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="ToolContent" Runat="Server"> </asp:Content> SOm dere ser så hjar jeg i denne formen lagt inn en LABEL. Denne kan jeg jo endre innholdet på i C# koden label.text = "Heisan og hoppsan" men dette er jo ikke HTML. Jeg ønsker å legge inn HTML rett inn der hvor den LABEL kontrololen ligger. Ser jo at LABEL ikke er rett kontrol, men hva kan jeg gjøre for å få dette til? takker for all hjelp Ole Lenke til kommentar
Manfred Skrevet 10. april 2008 Del Skrevet 10. april 2008 Det er vel asp:Repeater, som kaffenils sier... Evt. så kan du alltids adde controls til en Panel.. <asp:Panel ID="myPanel"... Panel.Controls.Add(... Du kan jo da lage en html tabell, ved å gjøre noe a'la: Table t = new Table(); TableRow tr = new TableRow(); TableCell tc = new TableCell(); tc.Text = "Tekst"; tr.Controls.Add(tc); t.Controls.Add(tr); ... Eller noe slikt... Lenke til kommentar
j000rn Skrevet 10. april 2008 Del Skrevet 10. april 2008 Response.Write er teit... <ASP:Repeater /> FTW! Lenke til kommentar
Manfred Skrevet 10. april 2008 Del Skrevet 10. april 2008 Response.Write er teit... Det er du også... *knis* men ja, den er ganske ubruklig Så kanskje det var GeirGrusom som var teit Lenke til kommentar
GeirGrusom Skrevet 10. april 2008 Del Skrevet 10. april 2008 (endret) Det er jeg som er teit ja Web utvikling er for pyser allikevel. Endret 10. april 2008 av GeirGrusom Lenke til kommentar
HDSoftware Skrevet 10. april 2008 Forfatter Del Skrevet 10. april 2008 Ok. Tror jeg forstår repeater konseptet, men fortsatt ser jeg ikke hvordan jeg putter HTML fra et felt i en SQL tabell inn. Lenke til kommentar
kaffenils Skrevet 10. april 2008 Del Skrevet 10. april 2008 Et rask eksempel: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (SqlConnection conn = new SqlConnection("Data Source=dinserver;Initial Catalog=OleMortenTidene;Integrated Security=SSPI")) { conn.Open(); using (SqlDataAdapter da = new SqlDataAdapter("select ArtikkelTekst from Artikler", conn)) { using (DataTable dt = new DataTable()) { da.Fill(dt); artikler.DataSource = dt; artikler.DataBind(); } } } } } DataSource kan være hva som helt som implementerer IEnumerable eller IListSource. Jeg brukte en DataTable for enkelhets skyld. På aspx-siden legger du inn en repeater som f.eks. ser slik ut: <asp:repeater id="artikler" runat="server"> <ItemTemplate> <%# (Container.DataItem as System.Data.DataRowView).Row["ArtikkelTekst"].ToString()%> <br /> </ItemTemplate> </asp:repeater> Lenke til kommentar
HDSoftware Skrevet 10. april 2008 Forfatter Del Skrevet 10. april 2008 Prøvde det men fikk meldingen "Kodeblokker støttes ikek i denne konteksten". Sikkert fordi jeg har valgt å ha SOURCE i egen fil. Men tankegangen ser god ut. Noe jeg kan gjøre for å komme rundt dette? Dette er ASPX fila: <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ArticlePage.aspx.cs" Inherits="ArticlePage" Title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MenuAreaLeftTop" Runat="Server"> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="MainArea" Runat="Server"> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1" OnItemCommand="Repeater1_ItemCommand1"> <%# (Container.DataItem as System.Data.DataRowView).Row["Article"].ToString()%> </asp:Repeater> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetArticles" TypeName="ArticlesDatasetTableAdapters.ArticlesTableAdapter" UpdateMethod="Update"> <DeleteParameters> <asp:Parameter Name="Original_GUID" Type="String" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="GUID" Type="String" /> <asp:Parameter Name="SectionID" Type="String" /> <asp:Parameter Name="AuthorGUID" Type="String" /> <asp:Parameter Name="Title" Type="String" /> <asp:Parameter Name="VisibleFromDateTime" Type="DateTime" /> <asp:Parameter Name="VisibleToDateTime" Type="DateTime" /> <asp:Parameter Name="ViewOnFirstPage" Type="Byte" /> <asp:Parameter Name="Article" Type="String" /> <asp:Parameter Name="Original_GUID" Type="String" /> </UpdateParameters> <InsertParameters> <asp:Parameter Name="GUID" Type="String" /> <asp:Parameter Name="SectionID" Type="String" /> <asp:Parameter Name="AuthorGUID" Type="String" /> <asp:Parameter Name="Title" Type="String" /> <asp:Parameter Name="VisibleFromDateTime" Type="DateTime" /> <asp:Parameter Name="VisibleToDateTime" Type="DateTime" /> <asp:Parameter Name="ViewOnFirstPage" Type="Byte" /> <asp:Parameter Name="Article" Type="String" /> </InsertParameters> </asp:ObjectDataSource> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="ToolContent" Runat="Server"> </asp:Content> Lenke til kommentar
Manfred Skrevet 10. april 2008 Del Skrevet 10. april 2008 Hvis du har html-kode i databasen, så kan du jo bare bruke en <asp:Literal ID="myLiteral" runat="server" /> i aspx-fila, og bare si myLiteral.Text = sqlDataReader["content"].ToString(); Lenke til kommentar
j000rn Skrevet 10. april 2008 Del Skrevet 10. april 2008 Prøvde det men fikk meldingen "Kodeblokker støttes ikek i denne konteksten". Sikkert fordi jeg har valgt å ha SOURCE i egen fil. Men tankegangen ser god ut. Noe jeg kan gjøre for å komme rundt dette? Dette er ASPX fila: .... <asp:repeater> kan ikke innehold html/tekst. Disse må ligge inne i f.eks. en <itemtemplate>. <asp:repeater...> <itemtemplate> <%#Eval("Brukernavn") %> - <%#Eval("Telefonnummer") %> </itemtemplate> </asp:repeater> Lenke til kommentar
HDSoftware Skrevet 10. april 2008 Forfatter Del Skrevet 10. april 2008 Takker. Får prøve meg litt frem her... Ole Lenke til kommentar
alftore Skrevet 10. april 2008 Del Skrevet 10. april 2008 Repeater er genialt bruker den hele tiden. http://msdn2.microsoft.com/en-us/library/s...s.repeater.aspx sjekk også ut headertemplate og footertemplate @geirgrusom Hvem kommer utenom web utvikling i dag? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå