webForumDet fria alternativet

Få MySQL att fungera tillsammans med ASP.NET

49 svar · 4 135 visningar · startad av Pace

PaceMedlem sedan juni 20019 024 inlägg
#1

Många har säkert försökt få igång MySQL tillsammans med ASP.NET utan att lyckas. Jag är en av dem, men ikväll lyckades jag och ska härmed dela med mig av erfarenheten.

  1. Först av allt, se till att installera MySQL och MyODBC så att det fungerar som det ska med vanliga ASP/PHP.
  2. Ladda ned ODBC .NET, den används för att ASP.NET ska kunna kommunicera med andra databaser än Microsofts egna.
  3. Namespacet Microsoft.Data.Odbc installeras i C:\Program\Microsoft.NET\Odbc.Net\Microsoft.Data.Odbc.dll. Kopiera denna till sajtens bin-katalog (vanligtvis C:\Inetpub\wwwroot\bin) så att den blir tillgänglig för dina webbprogram.
  4. Och nu till koden. Istället för att inkludera System.Data.OleDb som används med SQL Server/Jet inkluderar vi istället Microsoft.Data.Odbc. Du ser koden nedanför (notera även att OdbcConnection m.fl. - rödmarkerat i koden - används istället för OleDbConnection):
<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="Microsoft.Data.Odbc" %>

<script runat="server">
	Sub Page_Load(obj as Object, e as EventArgs) 
		' Connection-sträng samt SQL-sträng.
		Dim strConnectionString As String = "Driver={MySQL};Database=testdb"
		Dim strSQL As String = "SELECT * FROM test"

		' Skapa de båda objekten.
		Dim objConn As New [red]OdbcConnection[/red](strConnectionString)
		Dim objCmd As New [red]OdbcDataAdapter[/red](strSQL, objConn)

		' Fyll ett DataSet.
		dim ds as DataSet = new DataSet()
		objCmd.Fill(ds, "test")

		' Välj en DataView och bind till serverkontrollen.
		MyDataList.DataSource = ds.Tables("test").DefaultView
		MyDataList.DataBind()
	End Sub
 </script>
 

 <html><body[b][/b]>

	<ASP:DataList id="MyDataList" 
	RepeatColumns="2" RepeatDirection="Vertical" runat="server">
		<ItemTemplate>
		<div style="padding:15,15,15,15;font-size:10pt;font-family:Verdana">
		<b>ID:</b> <%# DataBinder.Eval(Container.DataItem, "id") %><br>
		<b>Namn:</b> <%# DataBinder.Eval(Container.DataItem, "name")%><br>
		</div>
		</ItemTemplate>
	</ASP:DataList>

 </body></html>

Databasen är av det enklaste slaget, en tabell vid namn test och två fält: id och name.

PatrikBMedlem sedan mars 20002 836 inlägg
#2

En liten parentes bara:

Kolla in prestanda med denna koppling mot mySQL och sedan en System-DSN (ODBC). Går ju enkelt i .NET och kika hur scriptet uppför sig genom Trace

cya,
PatrikB

EkströmMedlem sedan feb. 20022 594 inlägg
#3

Om man inte har någon BIN-katalog what so ever (Hittar ingen iaf.). Hur gör man?

PatrikBMedlem sedan mars 20002 836 inlägg
#4

Du kan ha en cgi-bin katalog. Går lika bra att lägga .dll'er där.

cgi-bin får man när FP Ext. är installerat på webben och då behövs inte bin katalogen. Det man ska se till är att denna katalog (cgi-bin, bin) endast har script source access. Ingen read, write eller ngt annat för IUSR_<servername>

cya,
PatrikB

EkströmMedlem sedan feb. 20022 594 inlägg
#5

Så det är bara lägga till en mapp med namnet bin eller cgi-bin och ställa in rättigheterna?

PatrikBMedlem sedan mars 20002 836 inlägg
#6

jepp,

EkströmMedlem sedan feb. 20022 594 inlägg
#7

Nu fick jag äntligen igång det. Det som behövdes var en uppgradering av MyODBC samt en fix till MDAC. :e

renholmMedlem sedan apr. 20012 266 inlägg
#8

Är det någon som vet något om en speciell class utformad för att använda MySql? Har för mig att det fanns en sådan men kan inte komma på vart jag läst om det. Classerna skulle heta: MySqlConnection, MySqlCommand osv.

PaceMedlem sedan juni 20019 024 inlägg
#9

MySqlDirect .NET Data Provider, kostar $99 men ger väl bättre prestanda än befintliga klasser i ramverket.

http://crlab.com/mysqlnet/

PatrikBMedlem sedan mars 20002 836 inlägg
#10

Finns även en som kallas dbProvider och som jag tycker funkar mycket bra. Den finns i olika versioner från gratis och uppåt.
Gratis varianten har tyvärr inte stöd för connection pooling har jag för mig.

Kan laddas ned här: http://www.einfodesigns.com/

cya,
PatrikB

SkarreMedlem sedan apr. 20012 427 inlägg
#11

Är det ens värt att lära sig ASP.NET om man inte jobbar professionellt med det? Gör man egna hobbyprojekt har man ju inte direkt råd att betala 1000 kr i månaden för en SQL Server-databas, och MySQL lär ju inte fungera tillsammans med ASP.NET på speciellt många webhotell med tanke på hur krångligt det verkar att få det att fungera.

Upplys mig! :) ASP är ett sjunkande skepp och jag vet inte i vilken livbåt jag ska hoppa. Den som tar mig till ASP.NET eller den som tar mig till PHP.

icaaqMedlem sedan okt. 20005 273 inlägg
#12

Om du har Office 2000 eller XP så kan du installera MSDE (Microsoft Data Engine)....det är en skalad version av SQL-server där kapaciteten är 5 användare och 2 gigabyte utrymme.

Leta efter en fil som heter SetupSQL.exe sen är det bara att köra. :)

När jag läser din fråga igen så spelar inte detta som jag skrivit någon roll ;) Men om jag ska svara på din fråga så tycker jag att du ska "hoppa på tåget" redan nu för kan du programmera i de språk du vill programmera i (C#, VB.NET eller nått annat språk) så är du inte bara ASP.NET du kan skapa applikationer i utan även windowforms.

mvh icaaq

SkarreMedlem sedan apr. 20012 427 inlägg
#13

Eftersom jag inte vet vad det är för någonting så kan jag anta att jag inte skulle vara intresserad av att skapa "windowforms". ;)

Jag vill skapa webbapplikationer som inte kostar skjortan att lägga ut på webben. Hade man kunnat använda vilken databas man ville så skulle jag garanterat lärt mig ASP.NET.

icaaqMedlem sedan okt. 20005 273 inlägg
#14

Kan du inte använda access ?

SkarreMedlem sedan apr. 20012 427 inlägg
#15

Nej, den håller inte måttet.

PatrikBMedlem sedan mars 20002 836 inlägg
#16

e inget problem att köra asp.net och mySQL, som jag har upptäckt. OK, e ju inte samma prestanda som mot ms-sql server, men klart bättre än access och billigare än ms-sql server.

Antingen använder man sig av Microsoft.Data.Odbc.dll, dbProvider etc och lägger dessa .dll'er i sin <bin> eller den katalog där man har sina .dll'er i och lägger sedan en reference till den i web.config. Svårare än så är det inte :e

cya,
PatrikB

SkarreMedlem sedan apr. 20012 427 inlägg
#17

Tror du på fullt allvar att du kan få ett webbhotell att göra det du föreslår ovan? Det tror faktiskt inte jag.

EkströmMedlem sedan feb. 20022 594 inlägg
#18

Om inte så gör man som jag gör. Refererar till den i CompilerOptions eller vad det nu heter :) Osäker...

SkarreMedlem sedan apr. 20012 427 inlägg
#19

Jag vet inte om det framgått ännu, men det jag försöker säga är att stöd för ASP.NET i kombination med MySQL troligtvis inte kommer att finnas på speciellt många webbhotell. Hur ni gör på era datorer hemma är irrelevant.

EkströmMedlem sedan feb. 20022 594 inlägg
#20

Tror faktiskt att Aleborg tänker försöka sig på det. Vet inte hur spritt det kommer vara på andra webhotell.

134 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)