20. juli 2002 - 23:52Der 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
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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)
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()
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.
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
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 ?
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.
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.
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
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" />
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.