using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace GeoCode_A_MySQL
{
public partial class MainGPS : Form
{
public MainGPS()
{
InitializeComponent();
}
private void btnZacni_Click(object sender, EventArgs e)
{
GeoCode Geo = new GeoCode();
VytvoreniSloupeckuDoDB VytvorSloupce = new VytvoreniSloupeckuDoDB();
DoplnSouradnice DoplneniSouradnic = new DoplnSouradnice();
// ulozime si obsahy textboxu
string sJmenoDB = tbNastaveniJmenoDatabaze.Text;
string sDataSource = tbNastaveniDataSource.Text;
string sUzivatel = tbNastaveniUzivatel.Text;
string sHeslo = tbNastaveniHeslo.Text;
string sTabulka = tbNastaveniJmenoTabulky.Text;
// pokud se mají pokusit vytvorit sloupce
if (chbNastaveniVytvoritSluopce.Checked)
{
// pokusím se je vytvořit, pokud to skončí s vyjímkou, tak existují
try
{
VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "GPSx");
}
catch
{
}
try
{
VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "GPSy");
}
catch
{
}
try
{
VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "Accuracy");
}
catch
{
}
}
// připojení k MySQL - je zapotřebí v preferences přidat MySQL.Data
MySqlCommand prikaz = new MySqlCommand();
MySqlConnection pripojeni = new MySqlConnection("Database=" + sJmenoDB + ";DataSource=" + sDataSource + ";UserId="
+ sUzivatel +";Password=" + sHeslo);
pripojeni.Open(); // otevre DB
MySqlDataReader cteni;
//prochazim tabulku a zaznam po zaznamu a vyhledavam kde je minimalne u jedno z GPSx, GPSy, Accuracy rovno null
prikaz.CommandText = "SELECT Adresa, ID FROM firma WHERE GPSx IS NULL OR GPSy IS NULL OR Accuracy IS NULL";
prikaz.Connection = pripojeni;
cteni = prikaz.ExecuteReader();
string sAdresa = "";
string sID = "";
string[] sStazenaData;
while (cteni.Read())
{
sAdresa = (cteni.GetString(0));
sID = (cteni.GetString(1));
sStazenaData = Geo.StahniSouradniceGPS(sAdresa);
if (sStazenaData[0] != "200")
{
switch (sStazenaData[0])
{
case "500":
MessageBox.Show("Chyba serveru.");
break;
case "601":
MessageBox.Show("Adresa nebyla zadána nebo byla chybně uvedena. " + sAdresa);
break;
case "602":
MessageBox.Show("Nepodařilo se najít georeferenci k uvedené adrese. " + sAdresa);
break;
case "603":
MessageBox.Show("Tato adresa je legislativně chráněna a nemůže být zveřejněna. " +sAdresa);
break;
case "610":
MessageBox.Show("Chybný klíč API.");
break;
case "620":
MessageBox.Show("Překročen povolený limit hledání pro tento API klíč.");
break;
default:
MessageBox.Show("Neznámý kód.");
break;
}
if (int.Parse(sStazenaData[0]) >= 610)
{
break; // zastavi dalsi nacitani
}
}
DoplneniSouradnic.DoplnitSouradnice(sJmenoDB, sDataSource, sUzivatel, sHeslo, sStazenaData[2], sStazenaData[3], sStazenaData[1], sID);
}
cteni.Close();
pripojeni.Close();
}
}
}