Avatar billede cdm_kiwie Nybegynder
11. juni 2003 - 09:36 Der er 1 løsning

Fra DataSet til Datagrid

Hejsa. Det jeg roder med på sigt er at udnytte caching af et dataset. Mit dataset rummer 3 tabeller, disse er 'personer','virksomheder', og en relationstabel 'personer_virksomheder'.

Som hej har forstået det så skal hver tabel hentes ud hver for sig og derefter skal der i koden oprettes relationer. Her er min kode:

<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>


<script runat="server">


sub page_load()
  Dim dst As DataSet
  Dim con As SqlConnection
  Dim dad As SqlDataAdapter
 
  dst = new DataSet()
  con = new SqlConnection("Server=localhost; UID=cdm; pwd=; Database=Birc_Intranet")
 
  dad = new SqlDataAdapter("SELECT * FROM personer",con)
  con.open()
  dad.Fill(dst,"personer")
 
  dad.SelectCommand = New sqlCommand("SELECT * FROM virksomheder",con)
  dad.Fill(dst,"virksomheder")   
 
  dad.SelectCommand = New sqlCommand("SELECT * FROM personer_virksomheder",con)
  dad.Fill(dst,"personer_virksomheder")   
 
  con.close()

  dst.Relations.Add("personer_personer_virksomheder",dst.Tables("personer").Columns("id"),dst.Tables("personer_virksomheder").Columns("personer_id"))
  dst.Relations.Add("personer_virksomheder_virksomheder",dst.Tables("virksomheder").Columns("id"),dst.Tables("personer_virksomheder").Columns("virksomheder_id"))

  dgPersoner.DataSource =  dst
  dgPersoner.DataBind()
end sub


</script>



<form runat="server">


<asp:Datagrid
  id="dgPersoner"
  AutoGenerateColumns="False"
  Cellpadding="4"
  width="700"
  borderStyle="Inset"
  HeaderStyle-font-size="11px"
  ItemStyle-font-size="11px"
  ItemStyle-Font-Name="Verdana"
  HeaderStyle-BackColor="lightYellow"
  AlternatingItemStyle-font-size="11px"
  AlternatingItemStyle-BackColor="AliceBlue"
  runat="server"
  >
 
  <Columns>
    <asp:TemplateColumn
      HeaderText="Navn"
      SortExpression="navn"
      >
     
    <itemTemplate>
      <%# Container.DataItem("navn") %>
        </itemTemplate>
      </asp:TemplateColumn>
         
      <asp:TemplateColumn
        HeaderText="Virksomhed"
    SortExpression="v_navn"
    >
   
      <itemTemplate>
        <%# Container.DataItem("v_navn") %>
      </itemTemplate>
        </asp:TemplateColumn> 
     
      <asp:TemplateColumn
          HeaderText="Email"
          SortExpression="email"
          >
            <itemTemplate>
              <a href="mailto:<%# Container.DataItem("email") %>"><%# Container.DataItem("email") %></a>
            </itemTemplate>
      </asp:TemplateColumn>         
   
        <asp:BoundColumn
          DataField="telefon"
          HeaderText="Telefon"
          />
        <asp:BoundColumn
          DataField="Birc_telefon"
          HeaderText="Birc lokal tlfnr."
          />                   
    </Columns>       
</asp:datagrid>   

</form>


Problemet er at <%# Container.DataItem("v_navn") %> ikke bliver godkendt og jeg før følgende fejl:

Exception Details: System.ArgumentException: v_navn is neither a DataColumn nor a DataRelation for table personer.


Skal dette gribes helt anderledes an eller hvordan kommer jeg videre ??
Avatar billede cdm_kiwie Nybegynder
16. juni 2003 - 12:34 #1
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester