/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
[.Net,C#] Odbc.Net og mySQL
Fra : Jesper Stocholm


Dato : 21-05-02 14:42

Jeg har forsøgt at flikke noget kode sammen, som jeg kan bruge til at
hente data fra min mySQL-database. Min tanke var, at jeg ville lave en
class-file, der skulle indeholde metoder til at hente, updatere etc, som
jeg så via codebehind kan bruge på de sider jeg har behov for det.

Det var tanken, at jeg ville kompilere min kode, lægge det op i mit
bin/-bibliotek og kalde den derfra.

Min code i min .cs-fil er :

using System;
using System.Data;
using System.Web.UI;
using Microsoft.Data.Odbc;

namespace stocholm.odbc
{
   public class dbOdbc : Page
   {
         public OdbcDataReader getData(string strSQL)
         {
            OdbcConnection oCon;
            OdbcCommand oCmd = new OdbcCommand();
            oCon = new OdbcConnection("driver={MySQL};server=xxx.xx.xx.xx;uid=uid1;pwd=psdw1;database=db1;OPTION=17923");
            oCon.Open();
            oCmd.Connection = oCon;
            oCmd.CommandText = strSQL;
            OdbcDataReader result = oCmd.ExecuteReader(CommandBehavior.CloseConnection);
            return result;
         }
   }
}

Men jeg har et par problemer:

1.
Når jeg forsøger at kompilere det via VS.Net, så er der ingen problemer
.... men når jeg prøver at kompilere den via cmd-prompt [1], så giver den
mig følgende fejl:

dbOdbc.cs(4,17): error CS0234: The type or namespace name 'Data'
does not exist in the class or namespace 'Microsoft' (are you
missing an assembly reference?)
dbOdbc.cs(10,11): error CS0246: The type or namespace name
'OdbcDataReader' could not be found (are you missing a using
directive or an assembly reference?)

I VS har jeg lavet en reference til Microsoft.Data.Odbc ... men hvordan
laver jeg denne reference i min kode ?

2.
Hvis jeg nu blot lægger min .cs-fil i mit bin-bib og forsøger at kalde
min fil med .Net-koden

<%@ Page Language="C#" inherits="stocholm.odbc.dbOdbc" %>

fortæller den mig, at den ikke kan loade typen stocholm.odbc.dbOdbc [2].

Hvad pokker gør jeg galt ?


[1] c:\> csc odOdbc.cs
[2] Se evt http://stocholm.dk/test/odbc.aspx
--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

 
 
Jakob Andersen (21-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 21-05-02 15:30

"Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
news:Xns92159FA7F3CFEspamstocholmdk@130.226.1.34...
> 1.
> Når jeg forsøger at kompilere det via VS.Net, så er der ingen problemer
> ... men når jeg prøver at kompilere den via cmd-prompt [1], så giver den
> mig følgende fejl:
> I VS har jeg lavet en reference til Microsoft.Data.Odbc ... men hvordan
> laver jeg denne reference i min kode ?

VS.NET laver selv en refference til Microsoft.Data som ligger i Global
Assembly Cache (ligger i f.eks. C:\WINNT\Assembly)
Hvis du går ind i dette dir kan du se hvilken version af Microsoft.Data du
bruger og så tilføjer du din assembly til web.config sådan her(Alle de
informationer du skal bruge kan du finde ved at åbne dit assembly dir, der
står version, token osv.):

<configuration>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="Microsoft.Data.Odbc, Version=1.0.3300.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
</system.web>
</configuration>


> 2.
> Hvis jeg nu blot lægger min .cs-fil i mit bin-bib og forsøger at kalde
> min fil med .Net-koden
> <%@ Page Language="C#" inherits="stocholm.odbc.dbOdbc" %>
> fortæller den mig, at den ikke kan loade typen stocholm.odbc.dbOdbc [2].

Har du brugt VS.NET til at compile med, hvis du har er du sikker på at du
har brugt brugt "build", hvis ikke sætter VS.NET dine sider til at nedarve
fra global.asax som default
(<http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q306155>)?
Er du sikker på at serveren er sat op til automatisk at loade assemblies fra
bin mappen?
Er du sikker på at bin mappen ligger direkte i den virtuelle mappe?

--
Jakob Andersen



Jakob Andersen (21-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 21-05-02 15:43

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:acdlng$2usi$1@news.cybercity.dk...
> Har du brugt VS.NET til at compile med
[SNIP]

Kom lige i tanke om den her artikel[1] som er ret praktisk når man ,som dig,
ikke helt kan finde ud af om man skal bruge VS.NET eller ej

[1] : <http://www.asp101.com/articles/john/codebehindnovs/default.asp>

--
Jakob Andersen



Jesper Stocholm (21-05-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 21-05-02 23:38

Jakob Andersen wrote in news:acdlng$2usi$1@news.cybercity.dk:

> "Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
> news:Xns92159FA7F3CFEspamstocholmdk@130.226.1.34...
>
> VS.NET laver selv en refference til Microsoft.Data som ligger i Global
> Assembly Cache (ligger i f.eks. C:\WINNT\Assembly)
> Hvis du går ind i dette dir kan du se hvilken version af
> Microsoft.Data du bruger og så tilføjer du din assembly til web.config
> sådan her(Alle de informationer du skal bruge kan du finde ved at åbne
> dit assembly dir, der står version, token osv.):
>
> <configuration>
> <system.web>
> <compilation debug="true">
> <assemblies>
> <add assembly="Microsoft.Data.Odbc,
> Version=1.0.3300.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
> </assemblies>
> </compilation>
> </system.web>
> </configuration>
>

ok ... jeg kan se, at de versionsnumre og tokens du har sendt med ikke er
som mine versioner af fx denne dll ... og jeg går lissom ud fra, at de skal
stemme overens. Men hvad skal jeg gøre her ? Skal jeg tage kontakt til min
webudbyder og bede ham om disse oplysninger - eller kan jeg kopiere min
egen Microsoft.Data.Odbc.dll op i mit /bin-dir og blot bruge den ?

>
> Har du brugt VS.NET til at compile med, hvis du har er du sikker på at
> du har brugt brugt "build", hvis ikke sætter VS.NET dine sider til at
> nedarve fra global.asax som default
> (<http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q306155>)?

ok ... jeg fandt ud af, at man direkte skal referere til de assemplies man
anvender, så da jeg lavede kaldet om til

$> csc /out:dbOdbc.dll
/r:System.web.dll,System.Data.dll,Microsoft.Data.Odbc.dll /t:library
dbOdbc.cs

lavede den fint min dll uden problemer.

> Er du sikker på at serveren er sat op til automatisk at loade
> assemblies fra bin mappen?
> Er du sikker på at bin mappen ligger direkte i den virtuelle mappe?
>

jeg må desværre svare 'nej' til begge disse spørgsmål, da jeg ikke har
hands-on adgang til den server, hvor mine sider hostes ... :(

--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Jesper Stocholm (21-05-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 21-05-02 23:51

Jesper Stocholm wrote in
news:Xns921666BA96A3spamstocholmdk@130.226.1.34:


ok ... jeg er nu kommet lidt videre.

Jeg har lavet en .dll med følgende kode og lagt den i mit /bin-bib:

using System;
using System.Data;
using System.Web.UI;
using Microsoft.Data.Odbc;

namespace stocholm
{
   public class dbOdbc : Page
   {
         public OdbcDataReader getData(string strSQL)
         {
            OdbcConnection oCon;
            OdbcCommand oCmd = new OdbcCommand();
            oCon = new OdbcConnection("driver={MySQL};server=xxx.xx.xx;uid=;pwd=;database=db1;OPTION=17923");
            oCon.Open();
            oCmd.Connection = oCon;
            oCmd.CommandText = strSQL;
            OdbcDataReader result = oCmd.ExecuteReader(CommandBehavior.CloseConnection);
            return result;
         }
   }
}

Når jeg forsøger at referere til denne fil via

<%@ Page language="C#" inherits="stocholm.dbOdbc" Debug="true"%>

ser det ud til at den godt kan finde min dll ... i hvert fald brokker
den sig ikke over noget (men derimod hvis jeg ændrer stocholm.odOdbc til
noget andet). Jeg antager derfor, at referencen til min dll er OK.

Men hvordan kommer jeg til at kunne bruge den ? Som det kan ses af koden,
så vil jeg gerne have en generisk funktion, som jeg kan sende en
SQL-streng til, og den returnerer så data til mig, som jeg så kan bruge
som den enkelte side nu end kræver det. Men de eksempler jeg har set på
Codebehind omhandler alle at man specifikt designer koden i dll til den
enkelte side ved at definere webcontrols i selve dll'en.

Altså: hvordan giver jeg min (generiske) klasse dbOdbc med metoden
getData() en SQL-streng, så den returnerer data som jeg så kan skrive ud ?

:)

--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Jakob Andersen (22-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 22-05-02 09:00

"Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
news:Xns921688EA72EDspamstocholmdk@130.226.1.34...
> Altså: hvordan giver jeg min (generiske) klasse dbOdbc med metoden
> getData() en SQL-streng, så den returnerer data som jeg så kan skrive ud ?

I sin simpleste form kunne et eksempel se sådan her ud:

<% @ Page Language="c#" %>
<% @Import Namespace="stocholm" %>
<% @Import Namespace="Microsoft.Data.Odbc" %>
<script language="c#" runat="server">
void Page_Load(){
dbOdbc oDB = new dbOdbc();
OdbcDataReader oDataReader = oDB.getData("SELECT felt1, felt2 FROM
dintabel");
MyDataGrid.DataSource = oDataReader;
MyDataGrid.DataBind();
}
</script>
<ASP:DataGrid id="MyDataGrid" runat="server" />


--
Jakob Andersen



Jakob Andersen (22-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 22-05-02 08:32

"Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
news:Xns921666BA96A3spamstocholmdk@130.226.1.34...
> ok ... jeg kan se, at de versionsnumre og tokens du har sendt med ikke er
> som mine versioner af fx denne dll ... og jeg går lissom ud fra, at de
skal
> stemme overens.

Nej, det behøves de ikke, du bruger blot den version du selv har til at
ligge.

> Men hvad skal jeg gøre her ? Skal jeg tage kontakt til min
> webudbyder og bede ham om disse oplysninger - eller kan jeg kopiere min
> egen Microsoft.Data.Odbc.dll op i mit /bin-dir og blot bruge den ?

Du skal have fat i din webudbyder, og lur mig om han ikke engang har den
installeret

> ok ... jeg fandt ud af, at man direkte skal referere til de assemplies man
> anvender, så da jeg lavede kaldet om til

Ahh, undskyld jeg havde lige overset at du havde din compile statement med i
bunden af sidste post.

> > Er du sikker på at serveren er sat op til automatisk at loade
> > assemblies fra bin mappen?
> > Er du sikker på at bin mappen ligger direkte i den virtuelle mappe?

> jeg må desværre svare 'nej' til begge disse spørgsmål, da jeg ikke har
> hands-on adgang til den server, hvor mine sider hostes ... :(

Hvis du er tvunget til at registrere dll filer selv om de ligger i bin
mappen, tyder det på at der er noget galt med serveropsætningen.

--
Jakob Andersen



Jesper Stocholm (22-05-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 22-05-02 09:32

Jakob Andersen wrote in news:acfhj6$24lm$1@news.cybercity.dk:

> "Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
> news:Xns921666BA96A3spamstocholmdk@130.226.1.34...
>> ok ... jeg kan se, at de versionsnumre og tokens du har sendt med
>> ikke er som mine versioner af fx denne dll ... og jeg går lissom ud
>> fra, at de skal stemme overens.
>
> Nej, det behøves de ikke, du bruger blot den version du selv har til
> at ligge.

ok ...

>> Men hvad skal jeg gøre her ? Skal jeg tage kontakt til min
>> webudbyder og bede ham om disse oplysninger - eller kan jeg kopiere
>> min egen Microsoft.Data.Odbc.dll op i mit /bin-dir og blot bruge den
>> ?
>
> Du skal have fat i din webudbyder, og lur mig om han ikke engang har
> den installeret

som du jo ved, så har jeg tidligere makket med Microsoft.Data.Odbc i en
anden forbindelse, så jeg har faktisk haft fat i ham tidligere og bedt
ham om at installere den ... så den er pt. installeret.

>> > Er du sikker på at serveren er sat op til automatisk at loade
>> > assemblies fra bin mappen?
>> > Er du sikker på at bin mappen ligger direkte i den virtuelle mappe?
>
>> jeg må desværre svare 'nej' til begge disse spørgsmål, da jeg ikke
>> har hands-on adgang til den server, hvor mine sider hostes ... :(
>
> Hvis du er tvunget til at registrere dll filer selv om de ligger i bin
> mappen, tyder det på at der er noget galt med serveropsætningen.
>

det har jeg jo ikke sagt ... ... som tidligere sagt ser det ud til at
virke som forventet.

:)

--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Jakob Andersen (22-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 22-05-02 10:06

"Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
news:Xns92166B094CDBEspamstocholmdk@130.226.1.34...
> som du jo ved, så har jeg tidligere makket med Microsoft.Data.Odbc i en
> anden forbindelse, så jeg har faktisk haft fat i ham tidligere og bedt
> ham om at installere den ... så den er pt. installeret.

Tør man spørge hvilken udbyder det er?

> det har jeg jo ikke sagt ... ... som tidligere sagt ser det ud til at
> virke som forventet.

Ok unskyld hvis jeg lagde dig ord i munden. Men hvis det virker så er det jo
bare om at klø på

--
Jakob Andersen



Jesper Stocholm (22-05-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 22-05-02 10:16

Jakob Andersen wrote in news:acfn3h$2a0b$1@news.cybercity.dk:

> "Jesper Stocholm" <spam200204@stocholm.dk> wrote in message
> news:Xns92166B094CDBEspamstocholmdk@130.226.1.34...
>> som du jo ved, så har jeg tidligere makket med Microsoft.Data.Odbc i
>> en anden forbindelse, så jeg har faktisk haft fat i ham tidligere og
>> bedt ham om at installere den ... så den er pt. installeret.
>
> Tør man spørge hvilken udbyder det er?
>

www.jirty.dk [1]

>> det har jeg jo ikke sagt ... ... som tidligere sagt ser det ud
>> til at virke som forventet.
>
> Ok unskyld hvis jeg lagde dig ord i munden. Men hvis det virker så er
> det jo bare om at klø på

:) ... at noget ser ud til at virke er ikke altid det samme som at det
rent faktisk virker ... men jeg har da indtryk af, at det alt i alt går
fremad, så indtil videre holder det mig i det mindste beskæftiget ...

[1] Hvis du har yderligere spørgsmål om jirty, så kan du jo skrive til
mig - eller tage det op i d.e.i.u.w

:)

--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Søg
Reklame
Statistik
Spørgsmål : 177504
Tips : 31968
Nyheder : 719565
Indlæg : 6408549
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste