webForumDet fria alternativet

Ansluta till mysql, ENKLAST MÖJLIGA :)

.NET

10 svar · 606 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

Jag e helt ny på asp.net, använder mig av VB och har installerat .net 2.0, mysql 4.1 och MySQL Connector/Net.

Borde vara all information som behövs va? Har även odbc installerat ifall det spelar någotn roll..
har jag missat något vitalt så säg till, jag e som sagt helt nybörjare och har bara jobbat med classisk asp innan.

Så enklast möjliga sätt att ansluta till en databas, hämta ut ett par poster och skriva ut dom, det är vad jag behöver veta sen kan jag nog prova mig fram :)

Medlem sedan sep. 2000215 inlägg
#2

Hej

Jag är lite osäker på om du har tänkt att börja med att koda det själv, eller om du använder någon utvecklingsverktyg (typ, webmatrix, visual web developer eller så) -för det är nog enklast av allt.

När det gäller handkodande finns exempelvis en hel del exempel på w3schools.
Några andra exempel hittar du på svenska, på idg's webstudio, där det finns en del kodexempel för bl.a. asp.net

Medlem sedan aug. 20011 087 inlägg
#3

Hade tänkt koda för hand men jag använder mig utav visual studio 2005 ibland..

Har lyckats koppla upp mig mot en databas och hämta information men då tog jag lite kod jag hittade någonstans och tror knappast det var bästa möjliga.

Dessutom så lyckades jag inte ha fler än 1 fungerande fråga mot databasen på sidan..

Medlem sedan aug. 20011 087 inlägg
#4

Ok detta har jag lyckats pilla ihop, säg vad jag gjort rätt/fel och hur jag kan förbättra det hela :)

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<HTML>
<HEAD>
<SCRIPT Language="VB" Runat="server">

	Dim sConString As String = ConfigurationSettings.AppSettings("sConnectionString")
	Dim oConnection as ODBCConnection = new ODBCConnection(sConString)
	
	Dim MySQL as String
	Dim oDataAdapter as ODBCDataAdapter
	Dim oDataSet as DataSet

Sub Page_Load(Source as object, e as EventArgs)

MySQL = "Insert into gb_posts (title, message) VALUES('apa', 'apa2222')"
oDataAdapter = New ODBCDataAdapter(MySQL, oConnection)
oDataSet = new DataSet()
oDataAdapter.Fill(oDataSet)

MySQL = "SELECT * FROM gb_posts"
oDataAdapter = New ODBCDataAdapter(MySQL, oConnection)
oDataSet = new DataSet()
oDataAdapter.Fill(oDataSet)

oDataGrid.DataSource = oDataSet
oDataGrid.DataBind()
End Sub
</SCRIPT >
</HEAD>
<BODY>
<ASP:DataGrid ID="oDataGrid" Runat="server" />
</BODY>
</HTML>
Medlem sedan mars 20023 561 inlägg
#5

Varför försöka fylla ett dataset när inte sqlfrågan returnerar någonting (eftersom det är en insert)?
I det fallet är det bättre att använda en ODBCCommand istället för en ODBCDataAdapter.
Om man skulle skriva om koden med ovanstående förändringar blir det följande

MySQL = "Insert into gb_posts (title, message) VALUES ('apa', 'apa2222')"
Dim oCmd As New ODBCCommand(MySQL, oConnection)
oCmd.Connection.Open()
oCmd.ExecuteNonQuery()
oCmd.Connection.Close()

Där du hämtar ut alla posterna är det bra som det är.
Men eftersom du bara hämtar tillbaka en tabell kan du använda DataTable istället för DataSet. Liten prestandavinst.

Medlem sedan aug. 20011 087 inlägg
#6

Ok, tack så mycket för dom tipsen, jag är som sagt helt nybörjare på detta så alla tips är välkommna :)

Medlem sedan aug. 20011 087 inlägg
#7

Jag skulle även vilja lägga denna del av koden i en sub eller funktion och kalla på den där jag behöver använda den. Hur gör jag det?

	Dim sConString As String = ConfigurationSettings.AppSettings("sConnectionString")
	Dim oConnection as ODBCConnection = new ODBCConnection(sConString)
	
	Dim MySQL as String
	Dim oDataAdapter as ODBCDataAdapter
	Dim oDataSet as DataSet
Medlem sedan mars 20023 561 inlägg
#8

Här kan du skicka in sql:en och få tillbaka ett dataset med resultatet av sql-frågan.
VB.NET

Public Function GetDataSet(ByVal MySql As String) As DataSet
	Dim sConString As String = ConfigurationSettings.AppSettings("sConnectionString")
	Dim oConnection as ODBCConnection = new ODBCConnection(sConString)
	
	Dim oDataAdapter as New ODBCDataAdapter(MySql, oConnection)
	Dim oDataSet as New DataSet
	Try
		oDataAdapter.Fill(oDataSet)
	Catch (ex As Exception)
		throw ex
	End Try
	oDataAdapter.Dispose()
	oConnection.Dispose()
	return oDataSet
End Function

C#

public DataSet GetDataSet(string MySql)
{
	ODBCConnection oConnection = new ODBCConnection(ConfigurationSettings.AppSettings["sConnectionString"].ToString());
	ODBCDataAdapter oDataAdapter = new ODBCDataAdapter(MySql, oConnection);
	DataSet oDataSet = new DataSet();
	try
	{
		oDataAdapter.Fill(oDataSet);
	}
	catch (Exception ex)
	{
		throw ex;
	}
	oDataAdapter.Dispose();
	oConnection.Dispose();

	return oDataSet;
}
Medlem sedan aug. 20011 087 inlägg
#9

Ok.. och hur callar jag den sen då?
call GetDataSet() ?

En sak till.. skulle vilja ha mina sådana här funktioner i en separat fil och inkludera den eller liknande.. hur görs detta? :D

Medlem sedan dec. 19996 522 inlägg
#10

Börja använda vs.net 05 hela tiden. Instansiera klassen du har GetDataSet i och anropa sedan metoden med din sqlfråga som inparameter. Skapa en klass som heter exempelvis DataBaseHelpers som du sedan lägger dina databasfunktioner i, om du inte hittar ett färdigt DAL (Data Access Layer) som du vill använda vill säga.

Medlem sedan aug. 20011 087 inlägg
#11

Det där var hebreiska för mig men ok.. :)

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)