Diskuze: MySQL Connect s Endorou - Problém

C# .NET .NET (C# a Visual Basic) MySQL Connect s Endorou - Problém American English version English version

Avatar
Jan Demel
Redaktor
Avatar
Jan Demel:

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 = "hondem@kasparek.stable.cz";
        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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Jan Demel
David Čápka:

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  +1 12.1.2014 19:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na David Čápka
Jan Demel:

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
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na Jan Demel
Drahomír Hanák:

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  +1 12.1.2014 20:18
Avatar
Jan Demel
Redaktor
Avatar
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:

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:

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ý
Redaktor
Avatar
Odpovídá na Lako
Jan Vargovský:

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

 
Nahoru Odpovědět 12.1.2014 23:33
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na Lako
Jan Demel:

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:

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.