Avatar billede xfox Nybegynder
14. juli 2004 - 15:38 Der er 7 kommentarer og
1 løsning

Tilgå database på webserver

Jeg har lavet en vb.net application som skal tilgå en database på en webserver. Databasen kan desværre kun tilgåes med "Localhost", dvs. fra et program som ligger på serveren. Jeg vil gerne kunne kører applicationen på en lokal maskine. Nogle forslag til hvordan man klare det?
Avatar billede arne_v Ekspert
14. juli 2004 - 15:41 #1
VB.NET applikation----(rå HTTP)----normal ASP.NET side----(ADO.NET)----database

eller

VB.NET applikation----(SOAP over HTTP)----web service hostet i ASP.NET----(ADO.NET)----database
Avatar billede xfox Nybegynder
14. juli 2004 - 15:47 #2
Men hvordan gør man lige det sådan rent praktisk..?
Jeg har jo en connectionstring i vb.net med en source adresse der skal være "localhost". Hvad skal den så henvise til istedet?
Avatar billede arne_v Ekspert
14. juli 2004 - 15:49 #3
Der skal slet ikke være noget database kode i VB.NET applikationen.

Den skal være i server side scriptet (som jeg har antaget er ASP.NET).

VB.NET applikationen skal enten sende en HTTP request eller en web service
request til server side scriptet.
Avatar billede xfox Nybegynder
14. juli 2004 - 15:52 #4
Selvfølgelig!
Du har vel ikke et lille kode eksempel på dette?
Avatar billede arne_v Ekspert
14. juli 2004 - 15:55 #5
Jeg kan lave et men det tager tid, så det bliver først i aften.
Avatar billede xfox Nybegynder
14. juli 2004 - 15:59 #6
Det er helt i orden, jeg kan først teste det i morgen. Bare lav det så simpelt så muligt så kan jeg selv finde ud af at tilpasse det. På forhånd tak.
Avatar billede arne_v Ekspert
14. juli 2004 - 20:00 #7
ASP.NET / VB.NET side:

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%
    Response.ContentType = "text/plain"
    Dim con As OleDbConnection = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database\MSAccess\Test.mdb;User Id=admin;Password=")
    con.Open
    Dim cmd As OleDbCommand = New OleDbCommand ("SELECT * FROM T1", con)
    Dim rdr As OleDbDataReader = cmd.ExecuteReader
    While rdr.Read
        Dim f1 As Integer = CType(rdr(0), Integer)
        Dim f2 As String = CType(rdr(1), String)
        Response.Write(f1 & " " & f2 & Environment.NewLine)
    End While
    con.Close
%>

VB.NET applikation:

Imports System
Imports System.IO
Imports System.Net
Imports System.Text

Class MainClass
    Public Shared Sub Main(ByVal args As String())
        Dim req As HttpWebRequest = CType(WebRequest.Create("http://localhost/select.aspx"), HttpWebRequest)
        Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
        Dim stmrdr As StreamReader = New StreamReader(resp.GetResponseStream)
        Dim line = stmrdr.ReadLine
        While line <> Nothing
            Dim parts = line.Split(" ".ToCharArray)
            Dim f1 As String = parts(0)
            Dim f2 As String = parts(1)
            Console.WriteLine(f1 & " " & f2)
            line = stmrdr.ReadLine
        End While
        stmrdr.Close
        resp.Close
    End Sub
End Class
Avatar billede xfox Nybegynder
14. juli 2004 - 20:35 #8
Tak for svaret. Det var ikke helt sådan jeg havde forestillet mig det kunne gøres, men jeg kan jo selv arbejde videre med det. Nu har jeg i hvert fald noget at gå ud fra.
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