Just nu i M3-nätverket
Gå till innehåll

Codebehind + databases and only one aspx page


echo

Rekommendera Poster

Det här är ett problem av dem lite mer avancerade sorten. Grundproblemet är väldigt enkelt, men sen har jag lite problem i det stora hela också.

 

Så här ser felet ut:

Compiler Error Message: CS1026: ) expected

Source Error:

Line 29:                 <div style="padding: 15px;font-size: 12px;font-family:verdana;">
Line 30:                     <div style="font: 14px verdana;color:#900;">
Line 31:                         <i><b><%# DataBinder.Eval((DataRowView)Container.DataItem["Förnamn"]);
Line 32:                         %>

 

Och så här ser koddeklarationsblocket och det andra viktiga ut:

<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

   void Page_Load(Object obj, EventArgs e)
   {
   //skapa koppling till databasen
           string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
               + Server.MapPath("user.mdb");
           OleDbConnection objConn = new OleDbConnection(strConn);
   //dim objConn as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WD\nonpro\db\user.mdb")
           OleDbDataAdapter objCmd = new OleDbDataAdapter("SELECT * FROM Users ORDER BY Förnamn, Efternamn ASC", objConn);
           DataSet ds = new DataSet();
           objCmd.Fill(ds, "Users");

           myDataList.DataSource = ds.Tables["Users"].DefaultView;
           myDataList.DataBind();
   }

</script>
<html>
<head>
</head>
<body>
   <form runat="server">
       <asp:DataList id="myDataList" runat="server" RepeatColumns="1" RepeatDirection="vertical">
           <ItemTemplate>
               <div style="padding: 15px;font-size: 12px;font-family:verdana;">
                   <div style="font: 14px verdana;color:#900;">
                       <i><b><%# DataBinder.Eval((DataRowView)Container.DataItem["Förnamn"]);
                       %>

 

Jag har försökt översätta en bit VB .Net till C# .Net... Någon som vet hur man gör detta?

 

Nästa steg (ny source, men det är bara lite skillnad) är att jag lägger <html> taggen i en ascx fil, koddeklarationsblocket i Default.cs, alltså i codebehindfilen som styr alla sidor från Default.aspx, samt lägger till informationen som jag vill att sidan ska visa i en databas: common. Där har jag sedan en tabell för varje sida, med 4 st kolumner: rubrik, text, datum och postID.

 

I Default.cs kollas om GET-variablen page finns, samt om det finns en ascx sida som överensstämmer med vad som står i page. Om det finns det så läggs den ascx filen till en placeholder, annars laddas förstasidan. Om den finns så försöker jag nu skapa en uppkoppling mot databasen common och hämta tabellen med namnet page (variablens innehåll) så att jag sen kan använda en Repeater eller DataList till att visa innehållet.

 

I det här exemplet är det ju en dataList, och felet jag får när jag sätter in koden ovan (<html>-</html>) i en ascx fil är att den säger:

 Compiler Error Message: BC30451: Name 'DataRowView' is not declared.

Source Error:

Line 7:                  <div style="padding: 15px;font-size: 12px;font-family:verdana;">
Line 8:                      <div style="font: 14px verdana;color:#900;">
Line 9:                          <i><b><%# DataBinder.Eval((DataRowView)Container.DataItem, "Rubrik");
Line 10:                         %> <%#  DataBinder.Eval(Container.DataItem, "Datum");
Line 11:                         %> </b></i> 

 

Jag får andra meddelanden beroende på om jag tar bort DataBinder.Eval, eller om jag tar bort DataRowView. (Då säger det något i stil med att det är fel typ på datan.)

 

Jag skulle bli mycket glad om någon vänlig själv kan hjälpa mig med det här problemet :)

 

//Henke

[inlägget ändrat 2004-11-28 14:06:45 av echo]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...