webForumDet fria alternativet

Hittar inte assembly

.NET

7 svar · 325 visningar · startad av Pace

Medlem sedan juni 20019 024 inlägg
Frågan#1

God kväll!

Jag har kommit till det stadiet där jag laddar ned så mycket kod som möjligt för att se hur andra gjort. Kollade runt lite här på .NET-forumet och hittade en kod för att ansluta till en MySQL db.

Koden börjar med:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<%@ Assembly Name = "System.Data.Odbc" %>

Det blir felmeddelande på "assembly"-raden:

File or assembly name System.Data.Odbc, or one of its dependencies, was not found.

Känns som om ASP.NET inte kan inte alla namespaces (testade med ett forum innan och fick ungefär samma felmeddelande).

Vad gör egentligen assembly? Jag har förstått att "Import namespace" importerar ett klassbibliotek, men assembly?

Medlem sedan nov. 20018 492 inlägg
#2

Ska det inte vara System.Data.OleDB?
Har knappt läst något om databaser än så fråga mig inte vad assembly är. ;)

Medlem sedan sep. 20011 914 inlägg
#3

Sökte på gotdotnet och hittade detta, har ingen aning om det är det du är ute efter. http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconassembliesoverview.asp

Medlem sedan juni 20011 732 inlägg
#4

OleDB är det namespace du använder tillsammans med Access. Ms SQL-server använder System.Data.SqlClient, vad mySQL använder vet jag inte men det kanske är samma? Förmodligen måste du ladda hem något som är specialskrivet för mysql. Det finns i alla fall inget som heter System.Data.Odbc.

Ett namespavce är ju enkelt uttryckt precis som du skriver en sökväg i klassbiblioteket. Istället för att skriva "System.Web.UI.WebControls.Label" så använder du ett namespace (System.Web.UI.WebControls i det här fallet) och du behöver bara skriva "Label".

I gamla asp kunde du använda com-objects. Motsvarigheten i .net är en assembly. Rent konkret är det den dll-fil som innehåller den kompilerade programkoden för ditt projekt. Naturligtvis kan ett projekt innehålla flera assemblys vilka kan kommunicera med varandra. Olika assemblys kan dessutom skrivas i olika språk och ändå kommunicera med varandra.

När du publicerar exempelvis en hemsida skapad i .net så behöver du alltså inte lägga upp några programfiler om du kompilerar en assembly, det räcker med dll-filen (filerna) och dina aspx-dokument. Detta är inte minst praktiskt om du ska sälja en produkt, programkoden ligger inte vidöppen i dina filer utan kompilerad som en dll. Detta ökar naturligtvis även säkerheten.

Medlem sedan juni 20019 024 inlägg
#5

Tack för svaret! Än en gång blev man lite klokare! :)

NETwork skrev:

Det finns i alla fall inget som heter System.Data.Odbc.

http://www.dotnet247.com/247reference/System/Data/Odbc/System.Data.Odbc.aspx

Vad jag förstått så är System.Data.Odbc det enda sättet att ansluta till en MySQL-databas (har inte hittat några andra). Eller menar du att "assemblyn" System.Data.Odbc inte finns?

[r] Det lyckades gå att importera också, tydligen (Microsoft.Data.Odbc): :)

<%@ CompilerOptions = '/R:"C:\Program\Microsoft.NET\Odbc.Net\Microsoft.data.odbc.dll"' %>

Nu funkar MySQL-kopplingen utmärkt!

Medlem sedan juni 20011 732 inlägg
#6

Nejdå, det är alldeles säkert riktigt, jag tittade bara i vs.net och i en standardinstallation så finns inte odbc med. Däremot tycker jag det borde finnas en direktkoppling även till mysql då odbc (om jag förstått det hela rätt) brukar tar en hel del prestanda eller så vill ms att det bara är deras produkter som ska gå snabbt... (en inte helt omöjlig tanke)

Medlem sedan juni 20019 024 inlägg
#7

NETwork skrev:

Nejdå, det är alldeles säkert riktigt, jag tittade bara i vs.net och i en standardinstallation så finns inte odbc med. Däremot tycker jag det borde finnas en direktkoppling även till mysql då odbc (om jag förstått det hela rätt) brukar tar en hel del prestanda eller så vill ms att det bara är deras produkter som ska gå snabbt... (en inte helt omöjlig tanke)

Det stämmer nog, M$ är ju ganska duktiga att ta på monopol på de flesta saker de gör.

Angående Microsoft.Data.Odbc så är den en del av Odbc.Net upptäckte jag nu...

Medlem sedan maj 2001329 inlägg
#8

System.Data.Odbc är en ny provider för .Net som gör det möjligt att använda ODBC drivers.

Går att ladda ner från..

http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/MSDN-FILES/027/001/668/msdncompositedoc.xml

Sen, visst blir det möjligtvis en prestandard förlust att gå genom oledb för att koppla upp sig mot en myslq eller en annan databas. Men det är inte hårdvaran som kostar pengar, utan det är vi (utvecklarna). Så istället för att ha en djungel av 200 providers blir det betydligt billigare att bara ha en provider...som kanske tar lite längre tid.

Sen är det ju en annan femma att MS har gjort en special lösning till sin egen databas ;)

282 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
141 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
143 ms — ändringar (db)