Avatar billede -sofus- Nybegynder
20. juli 2002 - 23:52 Der er 10 kommentarer og
3 løsninger

Lav et db udtræk fra en SQL server

Jeg har nu endelig beslutted mig for at gå i gang med ASP.net og jeg har prøvet at finde forskellige tutorials, men har ikke haft tolmodighed nok til at læse dem.

Så jeg sidder nu med en Windows 2000 Server, med .net framework samt en MS SQL 2000

Hvordan laver jeg et database udtræk ?
Avatar billede odegaard Nybegynder
21. juli 2002 - 10:12 #1
Hvilket sprog vil du skrive i? VB.NET, C#, J#, eller ?
Avatar billede odegaard Nybegynder
21. juli 2002 - 10:22 #2
Anyway, her et et eksempel i VB.NET (Selvom dette jo nok hører mest til i ASP.NET-gruppen)
--------------getdb.aspx------------------
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.Data.oleDB"%>

<script language="VB" runat=server>

Sub VisDB(Sender as Object, E as EventArgs)

    Dim ConnStr As String = "Provider=sqloledb;Data Source=myServerName;Initial Catalog=myDatabaseName;User Id=myUsername;Password=myPassword"
    Dim myConn As New OleDbConnection(ConnStr)
    Dim strSQL As String = "Select * From myTable"

    myConn.Open()

    Dim objDataCmd As OleDbDataAdapter = New OleDbDataAdapter(strSQL, MyConn)
    Dim objDS as new DataSet
    objDataCmd.Fill(objDS)   

    myConn.Close()

    result.DataSource = objDS
    result.DataBind()

End sub
</script>

<html>
<body>
<form runat="server">
<asp:button Text="Vis database-indhold" onClick="VisDB" runat="server" />
<asp:DataGrid id="result" runat="server" />
</form>
                 
</body></html>
Avatar billede guidmaster Nybegynder
21. juli 2002 - 12:40 #3
Nu da der er tale om SQL Server vil det være bedre at bruge den adapter der er udviklet specielt til SQL Server.

Dim dsResult As DataSet = New DataSet()
Dim oConn As SqlConnection = New SqlConnection(Provider=sqloledb;Data Source=myServerName;Initial Catalog=myDatabaseName;User Id=myUsername;Password=myPassword)
Dim oCommand As SqlCommand = New SqlCommand("SELECT * FROM Users", oConn)
oCommand.CommandType = CommandType.Text
Dim daAdapter As SqlDataAdapter = New SqlDataAdapter()daAdapter.SelectCommand = oCommand
oConn.Open()
daAdapter.Fill(dsResult, startrecord, maxrecords, "Users")
oConn.Close()
Avatar billede -sofus- Nybegynder
21. juli 2002 - 18:02 #4
Jeg for denne fejl..

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Avatar billede guidmaster Nybegynder
21. juli 2002 - 20:36 #5
Hvad gør du få at få denne fejl? Filnavn og kode ? En 404 betyder jo normalt at den fil du vil vise ikke findes på serveren ???
Avatar billede -sofus- Nybegynder
21. juli 2002 - 23:04 #6
Server Error in '/' Application.
--------------------------------------------------------------------------------

The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested Url: /legue/test.aspx


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.0.3705.0; ASP.NET Version:1.0.3705.0
Avatar billede -sofus- Nybegynder
21. juli 2002 - 23:17 #7
Jeg geninstalerede .net og har ikke fejlen længere..

Når jeg så har connected til databasen, hvordan ser et: <%= rs("data") %>
så ud i .net ?
Avatar billede odegaard Nybegynder
21. juli 2002 - 23:17 #8
Det er som guidmaster (og IIS) siger... Filen du refererer til eksisterer ikke på serveren. Er du sikker på at legue eksisterer? Har du prøvet at ligge den i roden, og så referere til den der ? Dvs. http://localhost/test.aspx ?
Avatar billede odegaard Nybegynder
21. juli 2002 - 23:19 #9
hov... du fik lige svaret i mellemtiden :-)

Egentlig bruger man ikke <% %> i ASP.NET. Man KAN bruge det, men så forsvinder hele det smarte med at adskille kode og tekst.

Istedet benytter du webcontrols, som du refererer til i din kode, præcis som i mit eksempel, hvor datasættet bliver konverteret til en table vha. et datagrid.
Avatar billede -sofus- Nybegynder
22. juli 2002 - 00:03 #10
odegaard, jeg får nogle skumle fejl ved dit eksempel.
Og jeg forstår ikke ret meget af det du sagde der (;

Men jeg har nu downloaded .net web matrix, og der laver jeg en database åbning der ser således ud
---------------------------------------------------------------------
    Function MyQueryMethod() As System.Data.SqlClient.SqlDataReader
        Dim connectionString As String = "server='localhost'; trusted_connection=true; Database='Banner'"
        Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
       
        Dim queryString As String = "SELECT [T_banner].* FROM [T_banner]"
        Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)
       
        sqlConnection.Open
        Dim dataReader As System.Data.SqlClient.SqlDataReader = sqlCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
       
        Return dataReader
    End Function
---------------------------------------------------------------------

jeg ved godt man ikke bruger <%%> i .net, men det er vel samme prencip som alm asp, hvor man laver en db connection, åbner db, laver et udtræk og lukker databasen igen.
Avatar billede guidmaster Nybegynder
22. juli 2002 - 08:36 #11
Hvis du vil bruge den gde gamle <%%> så prøv med denne kode:
Sub MyQueryMethod()
Dim connectionString As String = "server='localhost';trusted_connection=true; Database='Banner'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
       
Dim queryString As String = "SELECT [T_banner].* FROM [T_banner]"
Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)
       
sqlConnection.Open
Dim dataReader As System.Data.SqlClient.SqlDataReader = sqlCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
Do while dataReader.read()
    Response.Write("Banner: " & dataReader.Item("Navn") & "BR")
Loop
dataReader.Close()
sqlConnection.Close
       
End Function
Avatar billede odegaard Nybegynder
22. juli 2002 - 09:25 #12
Med response.write får du jo blot udskrevet tekst før dit <html> tag. Så hellere skrive
  myLabel.Text += "Banner: " & dataReader.Item("Navn") & "<br />"
i loopet, og nede efter html-tag'et hvor du ønsker teksten, skrive
  <asp:Label id=myLabel runat="server" />
Avatar billede jakobandersen Nybegynder
22. juli 2002 - 09:59 #13
Den bedste måde at opnå den gamle "recordset effekt" på er at bruge en repeater, se evt. her:

http://www.sourcecode-central.com/articles/access_repeater.aspx
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

IT-JOB

IT-Universitetet i København

CIO

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Teamleder til AL Sydbanks GDPR & Tech Regulation i Aabenraa

Udlændinge- og Integrationsministeriet

Jira og Confluence administrator til Koncern It

Politiets Efterretningstjeneste

Bliv IT-supporter i PET's IT Servicedesk