Just nu i M3-nätverket
Gå till innehåll

ASP.net + C# + MySQL = Huvudvärk


Bellfalasch

Rekommendera Poster

Bellfalasch

Jag har sökt igenom forumet, och flera andra, men inte hittat nåt svar som löser problemen. De flesta svar är också i VB så trots pulande med översättning så vill det inte funka.

 

Anslutningen vill inte funka. Webbhotellet skriver i sin guide en ASP-kod i VBscript och att denna även ska funka i ASP.net - ofta. Där används hursomhelst en ODBC-koppling, något jag aldrig behövt förut i ASP + MySQL. Måste ju gå utan i .net med tycker man.

 

Så hur kopplar jag till en MySQL-databas med ASP.net och C# ?

 

[inlägget ändrat 2005-03-28 10:58:48 av Bellfalasch]

Länk till kommentar
Dela på andra webbplatser

Bellfalasch

Hmm det va rätt dålig kod där, sågades i nästan alla kommentarer. Sen så fick jag inte heller det att funka.

 

Den gnäller vid MyConn.Open(); att '(' är ett ogilltigt tecken. Jag googlade på det och det enda de skrev var att man ej ska använda using, men det gör jag inte. Böt ut dem till [] men då var ';' ogilltigt.

 

Men tack ändå för länken!

 

Länk till kommentar
Dela på andra webbplatser

Bellfalasch

Tack för länken, nu funkar det men bara i VB. Ska leka med det även i C# då det tydligen bara är conn_string som behövs för MySQL o den är likadan i båda. My bad =/

 

Felet jag får med ogilltigt tecken i C# löser sig dock inte. Men jag kan likväl koda sidan i VB.

 

Exempelkoden som fungerade:

http://aspnet101.com/aspnet101/aspnet/codesample.aspx?code=mysqlcode

 

Alltså:

strConn = "DRIVER={MySQL};SERVER=IP_Address_or_Server;DATABASE=YourDB;" & _

"USER=YourUID;PASSWORD=YourPWD; OPTION=3;"

 

Länk till kommentar
Dela på andra webbplatser

Leon Radley

Jag använder MySql egna Net Connector

 

finns att tanka på

http://dev.mysql.com/downloads/connector/net/1.0.html

 

fungerar exakt som SqlConnection eller OdbcConnection

 

Ex

 

// Connection

MySqlConnection conn = new MySqlConnection("Database=MyDatabase;Data Source=127.0.0.1;User Id=MyUser;Password=MyPassword");

 

// Command

MySqlCommand myCmd = conn.CreateCommand();

myCmd.CommandText = "SELECT * FROM MyTable WHERE Id=?IdValue";

myCmd.Parameters.Add("?IdValue", MySqlDbType.Int32, 4).Value = 1;

 

// Open Connection

conn.Open();

 

// Read Data

MySqlDataReader myRdr = myCmd.ExecuteReader();

if(myRdr.Read())

{

string myString = myRdr["myColumn"].ToString();

}

 

// Cleanup

myRdr.Close();

myCmd.Dispose();

conn.Close();

conn.Dispose();

 

 

 

Länk till kommentar
Dela på andra webbplatser

Bellfalasch

Ska väl meddela att felet är löst nu. Testade lite olika saker tills det löste sig.

 

"System.Data.Odbc" var jag tvungen att importera skrivet exakt så, alltså skiftlägeskänsligt. Sen var alla OdbcConnections osv tvungna att skrivas med Odbc, inte ODBC som i de flesta exempel. Efter att de bitarna var klara och jag omringat drivern i anslutningen med {} så flöt det på.

 

Jag fick ett fel tidigare på MyConn.open(); men löstes genom att den biten helt togs bort och det hela ersattes av ett lite annat system. Så troligen fanns inte .Open med i det namespacet.

 

Här nedan följer den kod som fungerade för mig. Odbc var tydligen ett krav från webbhotellet, adaptor hade de inte, oledb testade jag aldrig. Observera att jag hoppat över html, body och den biten så koden validerar inte för xhtml 1.1, eller nåt annat heller för den delen.

 

 

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<script runat="server">

void Page_Load(Object Sender, EventArgs E)
{
string sql = "SELECT * FROM blaha LIMIT 20";
string dbcon = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=<server>;DATABASE=<db>;USER=<user>;PASSWORD=<pass>; OPTION=3;";

DataSet ds = new DataSet();
OdbcConnection MyConn = new OdbcConnection(dbcon);
OdbcDataAdapter Cmd = new OdbcDataAdapter(sql, MyConn);
Cmd.Fill(ds,"namn");

namn.DataSource = ds;
namn.DataBind();

MyConn.Close();
}
</script>


<form runat="server">
<asp:Repeater id="namn" runat="server">

<ItemTemplate>
<div class="box1">
 <h2><%# DataBinder.Eval( Container.DataItem, "ett" ) %></h2>
 <h4><%# DataBinder.Eval( Container.DataItem, "tva" ) %></h4>
 <p><%# DataBinder.Eval( Container.DataItem, "tre" ) %></p>
</div>
</ItemTemplate>

</asp:Repeater>
</form>

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...