IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jan Demel
Tvůrce
Avatar
Jan Demel:12.1.2014 19:49

Hojte lidi. Prosím vás chtěl jsem se vás zeptat, jestli někdo nemáte zkušenosti s ovládáním MySQL databáze pomocí reference MySQL.Data ? Chtěl by jsem udělat desktopovou aplikaci, ve které by jste mohli přidat koncert (novinku, nebo cokoliv podobného) no ale mám trochu problém se připojit do databáze Endory. Nevím jak mám vyplnit políčko server.

Celý zdroják:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace kokweb
{
    public partial class Form1 : Form
    {
        private MySqlConnection connection;
        private string database = "stranky";
        private string uid = "[email protected]";
        private string password = "";
        private string server = "sql.endora.cz:3311";
        private string connectionString;

        public Form1()
        {
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
                    database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
            connection = new MySqlConnection(connectionString);
            InitializeComponent();
        }

        private void send_Click(object sender, EventArgs e)
        {
            if (OpenConnection() == true)
            {

                string datum = date.Text;
                string titulek = title.Text;
                string telo = body.Text;

                string query = String.Format("INSERT INTO concert (date, title, body) VALUES('{0}', '{1}', '{2}')", datum, titulek, telo);

                MySqlCommand cmd = new MySqlCommand(query, connection);
                cmd.ExecuteNonQuery();

                connection.Close();
            }
            else
            {
                MessageBox.Show("Někde nastala chyba. Obraťte se na správce webu.");
            }
        }

        private bool OpenConnection()
        {
            try
            {
                connection.Open();
                return true;
            }
            catch (MySqlException ex)
            {
                switch (ex.Number)
                {
                    case 0:
                        MessageBox.Show("Nezdařilo se připojit k serveru, kontaktujte Administrátora !");
                        break;

                    case 1045:
                        MessageBox.Show("Chyba v připojení do MySQL");
                        break;
                }
                return false;
            }
        }
    }
}
Odpovědět
12.1.2014 19:49
To co se zdá být nemožné, je vždy možné.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Jan Demel
David Hartinger:12.1.2014 19:55

Tohle se tu řeší pořád. Nevím jestli Endora podporuje vzdálený přístup, ale i kdyby ano, nepoužíval bych ho, je to nebezpečné, dáváš do aplikace heslo, každý ho může zjistit. Udělej si na svém webu jednoduché API v PHP, přes které s DB komunikuj.

Nahoru Odpovědět
12.1.2014 19:55
New kid back on the block with a R.I.P
Avatar
Jan Demel
Tvůrce
Avatar
Odpovídá na David Hartinger
Jan Demel:12.1.2014 19:58

To tam bude stejně tak jako tak. Jenom jsem chtěl udělat takový control panel na ten web. Určitě to musí jít. To, že dávám do aplikace heslo od databáze mě vůbec netrápí. Aplikace je určena jedné důchodkyni a myslím si, že ona to nezjistí.

Nahoru Odpovědět
12.1.2014 19:58
To co se zdá být nemožné, je vždy možné.
Avatar
Odpovídá na Jan Demel
Drahomír Hanák:12.1.2014 20:18

Jak už ti napsal sdraco, musíš mít povolený remote connection (a v tomhle případě by musel být na všechny IP resp. na všechny, odkud se k db připojuješ) což není vůbec bezpečné. Endora má remote connection povolený u nejdražší varianty pro 5 IP (u free není vůbec) takže to opravdu nepůjde.

 
Nahoru Odpovědět
12.1.2014 20:18
Avatar
Jan Demel
Tvůrce
Avatar
Odpovídá na Drahomír Hanák
Jan Demel:12.1.2014 20:18

Ok děkuju moc.

Nahoru Odpovědět
12.1.2014 20:18
To co se zdá být nemožné, je vždy možné.
Avatar
Odpovídá na Jan Demel
Vojtěch Pospíchal:12.1.2014 20:25

Tohle jsem před dloooooohou dobou řešil. Pokud to chceš udělat tak jak to děláš teď, budeš potřebovat VPS na kterém si to sám nastavíš(doporučuju wedos na VPS je bezkonkurenčně nejlepší na trhu).

 
Nahoru Odpovědět
12.1.2014 20:25
Avatar
Lako
Člen
Avatar
Odpovídá na Jan Demel
Lako:12.1.2014 23:00

buď na aspone.cz, nebo určitě na appharbour.com je přístup povolený i pro vzdálená připojení a máš to ms databázi,můžeš použít EF...

 
Nahoru Odpovědět
12.1.2014 23:00
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Lako
Jan Vargovský:12.1.2014 23:33

Na EF dostane přednášku ve středu ve škole :)

 
Nahoru Odpovědět
12.1.2014 23:33
Avatar
Jan Demel
Tvůrce
Avatar
Odpovídá na Lako
Jan Demel:13.1.2014 16:24

Moc se mi nechce začínat s Microsoft databázema :/ Liší se to hodně od MySQL ?

Nahoru Odpovědět
13.1.2014 16:24
To co se zdá být nemožné, je vždy možné.
Avatar
Lako
Člen
Avatar
Odpovídá na Jan Demel
Lako:13.1.2014 17:17

Ano liší, SQL příkazy jsou trochu jiné (ale né moc, princip je zachován)...
C# a ms databáze je dobře fungující celek ve kterém nemusíš psát jako řetězec: "SELECT id, zakaznik, cena FROM smlouvy WHERE cena>10000" -> tohle už je z pohledu moderních technologií vážně oldschool.
Ano budeš se učit novou věc, ale skutečně užitečnou...
(tím netvrdím že se nad ms databází nedá použít klasické sql, jenom říkám že je to už v mnohém překonané)
hledej: linq, entity framework..

 
Nahoru Odpovědět
13.1.2014 17:17
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.