Verktyg Visningsval
2012-11-18, 21:16   #1

SpaceWeed

Medlem

SpaceWeeds avatar

Plats: Gnosjö

Registrerad: maj 2012

C# och MySQL


Håller på ett ett biblioteksprogram som projektarbete men har stött på ett par problem, har följt flera guider på nätet för att kunna ansluta till en databas men får hela tiden errors. t.ex. att man inte kan nå hosten eller att den nu inte finns. Har testat flera olika metoder att ansluta och flera olika databas hostar utan några vidare resultat.

Skulle vara tacksam om någon kunde hänvisa mig till en vettig guide som ni vet fungerar eller komma med exempelkod för anslutningen.
SpaceWeed är inte uppkopplad
2012-11-18, 22:06   #2

Xerbee

Medlem

Xerbees avatar

Plats: 42

Registrerad: maj 2004

Är det fel på databasen eller din kod som ansluter mot den?
Prova att köra en lokal instans av mysql om du inte redan gör det för att utesluta att det inte är anslutningen.

Annars brukar jag köra med NHibernate, kanske något att spana in för att göra det lite enklare http://nhforge.org/
Xerbee är inte uppkopplad
2012-11-18, 22:28   #3

SpaceWeed

Medlem

SpaceWeeds avatar

Plats: Gnosjö

Registrerad: maj 2012

Tror det är min kod, min polare gör ett admin webbgränssnitt utav det hela och han har inga som helst problem att ansluta.
SpaceWeed är inte uppkopplad
2012-11-18, 22:28   #4

celoz

Medlem

Plats: Stockholm

Registrerad: aug 2009

Börja enkelt genom att installera MySQL lokalt på datorn. Värdnamnet (eller IP) är "localhost" eller 127.0.0.1, porten är som standard 3306 så kolla att den inte är blockerad av ett annat program. Som standard är inloggningen endast "root" utan något lösenord. Ladda gärna ner apache och phpmyadmin för ett webbgränssnitt över databasen, vilket du kommer åt via att skriva localhost/phpmyadmin i webbläsaren. Enklast för att sätta upp allt detta på en gång är att ladda ner XAMPP så får du allt på en gång.

För att komma igång med C# och MySQL installerar du t.ex. .net connector for mysql vilket finns på mysqls hemsida.

Skummade igenom denna lite snabbt http://www.zetcode.com/db/mysqlcsharptutorial/ och den såg vettig ut. Går igenom det mesta av the basics.
celoz är inte uppkopplad
2012-11-18, 22:47   #5

SpaceWeed

Medlem

SpaceWeeds avatar

Plats: Gnosjö

Registrerad: maj 2012

Var visst inte noga med detaljer angående mina olika databas hostar.
Har testat sätta upp databaserna på följande:
1. VPS - LAMP server med phpmyadmin
2. Virtuel server som vi har satt upp i skolan, även där LAMP och phpmyadmin.
3. Har lånat en databas på en polares surftown konto.
4. Och sist har jag självklart satt upp en databas på min egna dator.

Men som jag nämnde innan så är jag nästintill 100% på att det är koden som är boven i det här fallet, och därför behöver jag bara lite hjälp med att hitta rätt. Har hittat en hel del guider som jag inte kommit någonvart med.

Länk till anslutnings classen: https://www.dropbox.com/s/pvft914hxx...Bconnection.cs
SpaceWeed är inte uppkopplad
2012-11-18, 23:00   #6

celoz

Medlem

Plats: Stockholm

Registrerad: aug 2009

I din kod har du en hel del grejer som inte är relevant just nu. Så testa att göra som guiden jag länka gjort.

using System;
using MySql.Data.MySqlClient; 

public class Example
{
    static void Main() 
    {
        string cs = @"server=localhost;userid=root;
            password=p@55w0rd;database=test";

        MySqlConnection conn = null;
        
        try 
        {
          conn = new MySqlConnection(cs);
          conn.Open();

          MySqlCommand cmd = new MySqlCommand();
          cmd.Connection = conn;
          cmd.CommandText = "INSERT INTO Personer(Name) VALUES(@Name)";
          cmd.Prepare();
           
          cmd.Parameters.AddWithValue("@Name", "Trygve Gulbranssen");
          cmd.ExecuteNonQuery();

        } catch (MySqlException ex) 
        {
          Console.WriteLine("Error: {0}",  ex.ToString());

        } finally 
        {
            if (conn != null) {
                conn.Close();
            }

        }
    }
}
Ändra databas namnet till den databas du skapat lokalt, skapa ett bord som heter Personer i databasen och kolla om Trygve Gulbranssen skrivs in när du kör programmet. Denna kod funkar 100% om du gjort allt rätt.
celoz är inte uppkopplad
2012-11-20, 10:55   #7

SpaceWeed

Medlem

SpaceWeeds avatar

Plats: Gnosjö

Registrerad: maj 2012

Citat:
Ursprungligen inskrivet av celoz Visa inlägg
Ändra databas namnet till den databas du skapat lokalt, skapa ett bord som heter Personer i databasen och kolla om Trygve Gulbranssen skrivs in när du kör programmet. Denna kod funkar 100% om du gjort allt rätt.
Gjorde precis som du sa, och det fungerar lokalt, men när man kör databaserna på en annan host så får jag samma error hela tiden.
"Unable to connect to any of the specified MySQL hosts"

Någon som har förslag på vad det kan bero på? Kan inte fortsätta med projektarbetet om jag inte kan använda rätt databaser. Eftersom jag inte är den enda som jobbar med just de databaserna så kan jag inte ha de lokalt dessutom så har jag 2 datorer som jag jobbar ifrån.
SpaceWeed är inte uppkopplad
2012-11-20, 11:15   #8

Thomas H

Medlem

Registrerad: nov 2007

Brandvägg?
Thomas H är inte uppkopplad
2012-11-20, 12:27   #9

vajjan

Medlem

Registrerad: jan 2005

Kanske något med connectionstringen? http://www.connectionstrings.com/mysql
Kanske inte ansluter på rätt port? Default är 3306
vajjan är inte uppkopplad
2012-11-20, 12:36   #10

inomjordisk

Medlem

inomjordisks avatar

Plats: Malmö

Registrerad: nov 2008

Om jag inte missminner mig så måste du i MySQL ändra åtkomstinställningarna för "användaren" för att ansluta till en MySQL-server på annan host. Den är bara inställd på att tillåta anslutningar lokalt normalt sett.

Edit: Testa anslut till databasen via MySQL-Workbench.
__________________
För många datorer för signaturen.
http://h23.se
inomjordisk är inte uppkopplad
2012-11-20, 12:40   #11

SpaceWeed

Medlem

SpaceWeeds avatar

Plats: Gnosjö

Registrerad: maj 2012

Jepp, skulle precis skriva det, har lyckats göra en riktig felsökning nu och allt tyder på att det är MySQL-servern som inte tillåter anslutningen. Men tack för hjälpen allihopa
SpaceWeed är inte uppkopplad
2012-11-20, 12:43   #12

Red Beaver

Medlem

Red Beavers avatar

Plats: Lund

Registrerad: aug 2003

Hade problem med att ansluta till min kompis databas, lösningen i vårt fall var att ändra från public Network till Home Network i Windows/brandväggen.
__________________
[Asus P5Q-E] [Q6600 G0 @ 3,6 ghz] [Scythe Yasya] [Gigabyte Gtx 460 1gb] [4x2 Gb Kingston HyperX PC8500] [OCZ ModXstream Pro 700 W ] [Crucial M4 128 gb ]
HTPC - AMD Athlon X2 5050e - M4N78-VM - Kingston HyperX 2 GB - Seagate 7200.12 1 TB - Seagate Green SATA III 2TB
Red Beaver är uppkopplad nu
2012-11-20, 12:46   #13

SpaceWeed

Medlem

SpaceWeeds avatar

Plats: Gnosjö

Registrerad: maj 2012

Jo jo men mitt problem var att det inte gick att ansluta från något nät alls. Och polaren gör en hemsida som är bunden till databasen men de ligger på samma server så då är det inget problem att ansluta.
SpaceWeed är inte uppkopplad
2012-11-20, 18:45   #14

MugiMugi

Medlem

MugiMugis avatar

Plats: Borås

Registrerad: jul 2004

Har personligen inte tid att berätta men ditt problem ligger i #1 brandväggen, du behöver öppna upp porten utåt. #2 du behöver configuera MySQL att lysna på rätt adaptrar. #3 Du behöver configurera att använder konto som har rättigheter att connecta utifrån.

Generelt sett så ska man ALDRIG NÅGONSIN öppna ut sin databas mot nätet. Riktig dålig praktis och är bara en riktigt svag säkerhets länk. Bäst du kan göra är fixa ihop en WCF tjänst på servern du har MySQL databasen på och använda dig av den för att dela data.
__________________
Speldator: SB i7-2600k @ 4,5Ghz P8Z68-V Pro, 8GB DDR3, Plextor M3 Pro 128GB. AMD Radeon R9 280X
Arbetsdator: IB i7-3770k Z77A-GD65, 16GB DDR3, 2x Corsair Force GT 120GB.
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Tablet: Surface Pro, Konsoler: PS4, PS3, Xbox 360, Wii U, PS Vita, 3DSXL, PS2, Xbox, +++
MugiMugi är inte uppkopplad
Senaste nyheterna

Redaktionens senaste nyhetsrubriker