Avatar billede Simon Praktikant
24. august 2004 - 11:27 Der er 9 kommentarer og
1 løsning

Hvordan laver man en component i .NET til at tilgå MySQL database

Hej
Jeg vi har bestilt et webhotel med tilhørende database ved b-one.
Det var meningen at vi skulle bruge databasen eksternt fra, men det kan man ikke, fordi den kun kan tilgås internt fra.
Vi programmerer i Visual Studio .NET.
Er det muligt at lave en komponent eller en service og lægge ud på webhotellet, hvorigennem vi så kan tilgå databasen eksternt fra?
Avatar billede arne_v Ekspert
24. august 2004 - 11:29 #1
I kan sagtens bruge:

applikation----web server----database

Hvis b-one undertsøtter ASP.NET kan i bruge web services.

Ellers laver I bare en helt almindelig HTTP GET og POST til en normal ASP eller PHP side,
Avatar billede basementjack Nybegynder
24. august 2004 - 11:34 #2
b-one understøtter ikke Asp.Net.. Kun alm. asp..
Avatar billede Simon Praktikant
24. august 2004 - 12:14 #3
har du et kodeeksempel eller andet der beskriver hvordan man laver sådan en
applikation----web server----database?
Avatar billede arne_v Ekspert
24. august 2004 - 12:16 #4
Jeg kan lave et simpelt eksempel

C# eller VB.NET ?

ASP eller PHP ?

Access eller MySQL ?
Avatar billede Simon Praktikant
24. august 2004 - 13:47 #5
ja tak, det ville jeg da være yderst glad for.
c#, asp, og MySql.
På forhånd mange tak.
Avatar billede arne_v Ekspert
24. august 2004 - 14:31 #6
dbproxy.asp:

<%
Response.ContentType = "text/plain"
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={MySQL};Database=Test;User Id=root;Password=;"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open CStr(Request("query")),con
Do While Not rs.EOF
  For i = 1 To rs.Fields.Count
      Response.Write rs.Fields.Item(i-1)
      If i < rs.Fields.Count Then
        Response.Write ","
      End If
  Next
  Response.Write vbCrLf
  rs.MoveNext
Loop
Set rs = Nothing
Set con = Nothing
%>

demo.cs:

using System;
using System.IO;
using System.Net;
using System.Web;

class MainClass
{
    public static void Main(string[] args)
    {
        WebRequest wr = WebRequest.Create("http://localhost/dbproxy.asp?query=" + HttpUtility.UrlEncode("SELECT * FROM T1"));
        StreamReader sr = new StreamReader(wr.GetResponse().GetResponseStream());
        string line;
        while((line = sr.ReadLine()) != null)
        {
            string[] fields = line.Split(",".ToCharArray());
            for(int i = 0; i < fields.Length; i++)
            {
                Console.Write("  " + fields[i]);
            }
            Console.WriteLine();
        }
    }
}
Avatar billede arne_v Ekspert
24. august 2004 - 14:31 #7
Den kan forbedres en hel del, men du har ihvertfald et udgangspunkt.
Avatar billede Simon Praktikant
24. august 2004 - 17:08 #8
Tak for hjælpen indtil videre, det her er jo meget fornemt.

Men jeg ken desværre ikke helt få det til at virke. Jeg har oprettet de to filer, og uploaded asp-filen.

Jeg har prøvet at køre c#-programmet med den kommer med exceptions ved denne funktion "wr.GetResponse()".
----
System.Net.WebException: The underlying connection was closed: The remote name could not be resolved.
  at System.Net.HttpWebRequest.CheckFinalStatus()
  at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
  at System.Net.HttpWebRequest.GetResponse()
  at dbproxy_test.Form1.button1_Click(Object sender, EventArgs e) in c:\documents and settings\simon\my documents\visual studio projects\dbproxy_test\form1.cs:line 101
----

Jeg er ret sikker på at fejlen ikke ligger ved asp-koden.

Jeg har isoleret den streng som bliver gerereret og indsat i "WebRequest.Create(urlSTR);", altså "urlSTR".

Jeg har prøvet at indsætte den i min browser, og så får jeg den tabel jeg efterspørger.
Avatar billede arne_v Ekspert
24. august 2004 - 21:47 #9
Mystisk.

Det virker fint hos mig.

Tillader din IIS anonym adgang ?
Avatar billede Simon Praktikant
24. august 2004 - 22:31 #10
Ja jeg har lige prøvet igen her til aften. Uden at ændre i noget kode. Nu virker det og så her, sjovt nok. Jeg ved ikke hvad der har været galt, måske min firewall, ved det ikke. Men mange tak for den fine hjælp, endnu en gang.
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
Computerworld tilbyder specialiserede kurser i database-management

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