B Bosse168 Medlem sedan nov. 2003 1 018 inlägg Frågan 1 juni 2004 13:22 #1 Hur gör man för att hämta och skriva ut poster ur en MySQL databas? Jag har installerat MyOLEDB 3.0 på servern som MySQL databasen ligger på (annan server än själva sidan). :stud
PDahlen Medlem sedan apr. 2004 778 inlägg Om jag inte har helt fel så måste du installera MyOLEDB på webbservern.
B Bosse168 Medlem sedan nov. 2003 1 018 inlägg Jag har ju installerat MyOLEDB
PDahlen Medlem sedan apr. 2004 778 inlägg Ja men du skriver
Jag har installerat MyOLEDB 3.0 på servern som MySQL databasen ligger på (annan server än själva sidan).
Det jag syftar på är att du ska installera MyOLEDB på den servern sidan ligger på = Webbservern. Du har ju installerat den på databasservern.
B Bosse168 Medlem sedan nov. 2003 1 018 inlägg Så det är lättare att hämta data ur en access databas än en MySQL databas?
Pace Medlem sedan juni 2001 9 024 inlägg
Bosse168 skrev:
Så det är lättare att hämta data ur en access databas än en MySQL databas?
Om du inte installerar den mjukvara som krävs för att MySQL ska fungera så kan du inte säga att det lättare med Access. ;)
För att besvara din fråga; det är minst lika lätt när allt väl är uppe och körs.
Gör som PDahlen säger och försök igen.
PDahlen Medlem sedan apr. 2004 778 inlägg Det vet jag inte för jag kör varken eller, och det har inte riktigt med frågan att göra, men du kan inte hämta ur en databas på en annan server om du inte har drivrutiner för den databasen på webbservern. Det är ju sidorna som skall anropa databasen och då måste datorn sidorna ligger på kunna prata med databasen. I ditt fall kan den inte det eftersom du bara har installerat MyOLEDB på den datorn där databasen ligger, inte på datorn där sidorna ligger.
B Bosse168 Medlem sedan nov. 2003 1 018 inlägg Hur vet man om MyOLEDB är installerat på servern där sidorna ligger?
Försöker få en gästbok att fungera, den funkar med Access men inte med en MySQL databas och jag verkligen använda min redan befintliga MySQL databas.
<% Response.Buffer = "true" %>
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<Script runat="server">
Dim DataItem
Function CreateDataSource() As DataTable
'Koppla upp mot databasen
Dim objConn as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("\test\") &"database.mdb") 'GLÖM INTE ATT ÄNDRA KOPPLINGEN!
'Anslut med databastabellen
Dim objCom as new OleDbDataAdapter("SELECT Writer, WriterEmail, Certificate, MessageDateTime, Message, Answer FROM guestbook WHERE Passed = 1 ORDER BY ID desc", objConn)
'Fyll DataSet
Dim ds as DataSet = new DataSet()
objCom.Fill(ds, "guestbook")
return ds.Tables("guestbook")
End Function
Sub Page_Load(sender As Object, e As EventArgs)
' Ladda datan bara en gång
If Not IsPostBack Then
'Välj datavy och bind till serverkontrollen
Datagrid1.DataSource = CreateDataSource()
Datagrid1.DataBind()
End If
End Sub
Sub Datagrid1_PageIndexChanged(obj as Object, e as DataGridPageChangedEventArgs)
' Set CurrentPageIndex to the page the user clicked.
DataGrid1.CurrentPageIndex = e.NewPageIndex
' Rebind the data to refresh the DataGrid control.
DataGrid1.DataSource = CreateDataSource()
DataGrid1.DataBind()
End Sub
</Script>
<HTML>
<HEAD>
<TITLE>Gästboken</TITLE>
</HEAD>
<BODY>
<b>Gästboken</b><BR>
Om du vill säga vad du tycker eller berätta att du har varit här utan att skicka mig ett mail så är ju gästboken ett utmärkt sätt. Kladda på.<BR>
<a href="write.aspx">Skriv ett meddelande till mig</a>
<HR SIZE="1">
<% If Request.Querystring("saved") = "yes" Then Response.Write("Ditt meddelande har postats. Det kommer nu att godkännas av mig.") %>
<FORM Runat="server">
<ASP:DataGrid id="Datagrid1" Width="100%" runat="server"
AutoGenerateColumns="False"
AllowPaging="true"
PageSize=10
PagerStyle-Mode=NumericPages
PagerStyle-PageButtonCount=20
OnPageIndexChanged="Datagrid1_PageIndexChanged">
<Columns>
<ASP:TemplateColumn HeaderText="<CENTER><b>Meddelanden</b></CENTER>">
<ItemTemplate>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="3">
<TR>
<TD WIDTH="100%">
<%# Server.HtmlEncode(Container.DataItem("Message")) %>
<BR><BR>
<B>Svar:</B> <I><%# Server.HtmlEncode(Container.DataItem("Answer")) %></I>
<CENTER><HR SIZE="1" WIDTH="97%"></CENTER>
Skrivet av <A HREF="mailto:<%# Server.HtmlEncode(Container.DataItem("WriterEmail")) %>">
<%# Server.HtmlEncode(Container.DataItem("Writer")) %></A>
<%# Server.HtmlEncode(Container.DataItem("MessageDateTime")) %>,
som ger siten <B><%# Server.HtmlEncode(Container.DataItem("Certificate")) %></B> i betyg.
</TD>
</TR>
</TABLE>
</ItemTemplate>
</ASP:TemplateColumn>
</Columns>
</ASP:DataGrid>
</FORM>
Den här gästboken finns att ladda ner på ASPsidan.nu.<BR>
© Christoffer Lejdborg 2003
</BODY>
</HTML>
Pace Medlem sedan juni 2001 9 024 inlägg Jadu, börja med att ändra anslutskopplingen (connection-string) till databasen. Byt sedan ut System.Data.OleDb mot System.Data.Odbc. Då skall det vara klart.
P P Medlem sedan jan. 2001 2 204 inlägg Ohh hata Odbc, alltid strul med det. Kom ihåg att System.Data.Odbc inte finns i version 1.0
B Bosse168 Medlem sedan nov. 2003 1 018 inlägg Får detta fel mess:
Compiler Error Message: BC30002: Type 'OdbcConnection' is not defined.
Source Error:
Line 10:
Line 11: ' Skapa de båda objekten.
Line 12: Dim objConn As New OdbcConnection(strConnectionString)
Line 13: Dim objCmd As New OdbcDataAdapter(strSQL, objConn)
Pace Medlem sedan juni 2001 9 024 inlägg
P skrev:
Ohh hata Odbc, alltid strul med det. Kom ihåg att System.Data.Odbc inte finns i version 1.0
Har aldrig strulat för mig. ;)
I 1.0 så är det assemblyn och namespacet Microsoft.Data.Odbc som gäller. Laddas ned från Microsoft, sök i detta forum för länk.
Bosse168 skrev:
Type 'OdbcConnection' is not defined.
Antingen har du inte angett namespacet eller så finns det inte (du har därmed 1.0).
B Bosse168 Medlem sedan nov. 2003 1 018 inlägg Vart kan jag ladda ner 1.1?
PDahlen Medlem sedan apr. 2004 778 inlägg P P Medlem sedan jan. 2001 2 204 inlägg
Pace skrev:
P skrev:
Ohh hata Odbc, alltid strul med det. Kom ihåg att System.Data.Odbc inte finns i version 1.0
Har aldrig strulat för mig. ;)
Funkar väl hyffsat om man kör på server, ska man hålla på och leka med WinForms, då blir det jobbigare, skicka med ODBC-Connet grejen från mysql osv. *suckar*
K Kalli Medlem sedan feb. 2003 8 inlägg Ladda ner ByteFX istället. Inga krångliga installationer och fungerar perfekt.
Hur du gör kan du se här
Faktum är att ByteFX skall bli den officiella .NET providern för MySql . Läs mer på ByteFX.com