Avatar billede jabp Nybegynder
09. april 2000 - 21:48 Der er 4 kommentarer og
2 løsninger

Hjælp med Database

Hej jeg er nybegynder med ASP og access database.
Så er der ikke en der kan lave et eksempel på hvordan man får indsat noget i en database.

Altså fra en form til en database, og en side hvor database indholdet bliver vist.
Avatar billede ares Nybegynder
09. april 2000 - 22:26 #1
Først lidt om hvordan man trække data ud af en Db(databasen).


Forbindelse til Access db

<% Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("DbNavn")

SQL="Select * from tablenavn"
Set Rs=Conn.Execute(SQL)
%>

efter at man har skabt en forbindelsen ovenfor kan man trække data ud ved at skrive

<% =rs("tabelNavn") %>

eller

<% Response.Write " "& rs("tabelNavn") &"  "


Hvis man skal putte data i en tabel gøres det f.eks. ved at bruge en ande SQL-sætning

SQL = "INSERT INTO TabelNavn (VariableNavn ) values ('" & Request("overskrift")& "')"
conn.execute (SQL)

Når man er færdig med sin Db-forbindelse skal den lukkes.

<%Rs.close
Set Rs= Nothing
Conn.Close
set Conn=nothing%>

Dette er kun en lille intro til ASP og db - du kan finde mere herpå eksperten eller på http://www.activeserverpages.dk

eller nogle af de mange andre sider om emnet. Bøger kan anbefales:

Wrox serien.

http://www.wrox.co.uk/

MVH

Ares
Avatar billede pfm Nybegynder
10. april 2000 - 11:57 #2
Hvis jeg har 4 felter i en form: Lokalitet, Vej, Nr, Postnr jeg gerne vil have i en DB (nu bruger jeg SQL, så der kan være en lille forskel nogle steder i forhold til Access, har jeg hørt). I form'en submitter jeg til en action side... f.eks:
<form ACTION="lokalitet_action.asp" target="_self" method="POST" onsubmit="return Form1_Validator(this)" name="Form1">
Min lokalitet_action.asp -side vil oprette en ny record i tabellen lokaliteter.

<%@ Language=VBScript %>
'Her skal du bruge dine egne connection-linier
<!-- #include file=../include/connopen.inc -->
<%
nysql = "INSERT INTO lokaliteter (Lokalitet, Vej, Nr, Postnr) "
nysql = nysql & "VALUES("'" & Request.Form ("Lokalitet") & "', "
nysql = nysql & "'" & Request.Form ("Vej") & "', "
nysql = nysql & "'" & Request.Form ("Nr") & "', "
nysql = nysql & "'" & Request.Form ("Postnr") & "')"
conn.Execute(nysql)
%>

<HTML>
<HEAD>
</HEAD>
<BODY>
<center><font FACE="Arial, Verdana, Helvetica" SIZE="5" color="#FF0000"><P>Opdatéring.... </P>
<div align="center"><%=Request.Form ("Lokalitet")%></div>&nbsp;<p>Et øjeblik !!</p>
</font></center>
<script LANGUAGE="JavaScript"><!--
//alert(document.referrer);
window.defaultStatus="Oprettelse......"
var timerID;

//Vender tilbage til den side du kom fra
timerID=setTimeout('location.replace(document.referrer)',2000);

// --></script>

</BODY>
</HTML>
'Her skal du selv lukke din connection
<!-- #include file=../include/connclose.inc -->

Jeg håber dette hjalp lidt!
PFM
Avatar billede pfm Nybegynder
10. april 2000 - 12:16 #3
Hvis det man ønsker indsat i tabellen er tekst skal variablen være indkabslet som her '"&variablen&"' (single quotes og double quotes).
nysql = nysql & "'" & Request.Form ("Postnr") & "')"
'sæt strengen nysql = det der allerede er i nysql + denne streng " med denne streng-variable '" & variablen & "' og slut denne streng VALUES streng )"
Hvis nu Postnr-feltet er numerisk skulle linien for indsættelse af Postnr se således ud:
    nysql = nysql & Request.Form ("Postnr") & ")"
Der er selvfølgelig også den mulighed at skrive det hele i én linie, men det gør det besværligt at læse ved mange data, der skal lægges i database

nysql = "INSERT INTO lokaliteter (Lokalitet, Vej, Nr, Postnr) VALUES("'" & Request.Form ("Lokalitet") & "', '" & Request.Form ("Vej") & "', '" & Request.Form ("Nr") & "', '" & Request.Form ("Postnr") & "')"
conn.Execute(nysql)
'Dette er ikke afprøvet - så der kan være et par kommafejl eller quote-fejl  ;o)
Avatar billede pfm Nybegynder
10. april 2000 - 13:34 #4
Jeg har fundet dette til dig fra www.activeserverpages.dk
En zipfil der har eksempler på opret/ret/slet i database. Access db medfølger!
http://www.activeserverpages.dk/download/default.asp?mode=showdownload&id=83
Avatar billede pfm Nybegynder
10. april 2000 - 14:17 #5
Nåh ja, jeg glemte hvordan db-indholdet bliver vist:
Husk du skal have denne linie øverst i dinne asp-sider
<%@ Language=VBScript %>

'åben din connection
<!-- #include file=../include/connopen.inc -->
'find poster i basen
sql= "SELECT * FROM lokaliteter
Set rst = Server.CreateObject("ADODB.RecordSet")
rst.Open sql, conn

'Vis dine data i en tabel
<table width="376" border="1" cellspacing="0">
'Tabel overskrifter!
  <tr>
    <td width="5%" ALIGN="center">
      <p align="center"><b><font size="2" FACE="Arial, Verdana, Helvetica"> &nbsp;</font></b></p>
    </td>
    <td width="250">
      <p align="left"><font face="Arial, Verdana, Helvetica" size="2">Lokalitet</font></td>
    <td width="3">
      <p align="right">&nbsp;</td>
    <td width="50">
      <p align="center"><font FACE="Arial, Verdana, Helvetica" SIZE="2"> Adresse</font></td>
    <td width="3">
      <p align="right">&nbsp;</td>
    <td width="70">
      <p align="center"><font FACE="Arial, Verdana, Helvetica" SIZE="2"> Postnr/By</font></td>
  </tr>
<%
'bliv ved med at liste data i tabelen så længe der er data i basen
do while not rst.EOF
%>
  <tr>
    <td ALIGN="center">
      <p align="center"><a href="ret_lokalitet.asp?lokid=<%=rst("lokid")%>"><img border="0" src="../images/LeafEarth.gif" alt="Ret lokalitet" width="16" height="16"></a></p>
    </td>
    <td nowrap><font FACE="Arial, Verdana, Helvetica" SIZE="2"><%=rst("Lokalitet")%></font></td>
    <td>
      <p align="right">&nbsp;</td>
    <td  nowrap><font FACE="Arial, Verdana, Helvetica" SIZE="2"><%=rst("Vej")%>&nbsp;<%=rst("Nr")%></font></td>
    <td>
      <p align="right">&nbsp;</td>
    <td nowrap><font FACE="Arial, Verdana, Helvetica" SIZE="2"><%=rst("Postnr")%></font></td>
  </tr>
<%
rst.MoveNext
loop
%>
</table></div></center>
<%
rst.close
set rst=nothing
%>
<!-- #include file=../include/connclose.inc -->
Avatar billede pfm Nybegynder
10. april 2000 - 14:33 #6
Ovenstående eksempel har ud fra hver linie et lille ikon-billede som reffererer til en rettelses side for den pågældende. Her er lokid'et meget vigtig.
Med lokid kan du entydigt finde det pågældende lokalitet og derved vise dataene i en form som man kan rette i. Eks.
<input TYPE="text" SIZE="25" NAME="Lokalitet" TABINDEX="2" maxlength="50" value="<%=rst("Lokalitet")%>">

Inden du kan vise felterne skal du selvfølgelig have connectet til basen og fundet det pågældende lokalitet:
'åben din connection
<!-- #include file=../include/connopen.inc -->
'få fat i det pågældende lokalitets id fra linken
lokID=Request.QueryString ("lokid")

'find poster i basen
sql= "SELECT * FROM lokaliteter WHERE lokid="&lokid
Set rst conn.Execute(sql)

'Herefter vises formen med base-data.....
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
Kurser inden for grundlæggende programmering

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