using System.Collections.Generic;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Text.RegularExpressions;
public int id { get; set; }
public string name { get; set; }
public List<Dataset> datasets { get; set; }
public Meta meta { get; set; }
static void Main(string[] args)
string cs = @"server=xxxxxx;userid=root;
password=xxxxxxxx;database=xxxxxxxxxxxxx";
MySqlConnection conn = null;
DateTime currentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, (DateTime.Now.Day - 4));
for (int i = 1; i < 200; i++)
Console.SetCursorPosition(0, 0);
Console.WriteLine("Working on page " + i + "...");
Console.SetCursorPosition(0, 3);
Console.WriteLine(errorMsg);
WebClient client = new WebClient();
RootObject js = JsonConvert.DeserializeObject<RootObject>(client.DownloadString("URL_PART_ONE" + i + "&URL_PART_TWO"));
for (int num = 0; num < js.datasets.Count; num++)
using (conn = new MySqlConnection(cs))
using (MySqlCommand cmd = conn.CreateCommand())
Console.SetCursorPosition(0, 0);
Console.WriteLine("Working on page " + i + "...");
Console.SetCursorPosition(0, 2);
Console.WriteLine("Adding row " + (num + 1) + " of " + js.datasets.Count);
Console.SetCursorPosition(0, 3);
Console.WriteLine(errorMsg);
cmd.CommandText = "INSERT INTO Symbols (id, name) VALUES (@id, @name)";
cmd.Parameters.AddWithValue("@id", js.datasets[num].id);
cmd.Parameters.AddWithValue("@name", js.datasets[num].name);
catch (MySqlException ex)
errorMsg += "\r\n Error: {0}";
errorMsg += ex.ToString();
errorMsg += "\r\n" + e.Message;
using (StreamWriter writer = new StreamWriter("log.txt", true))
writer.WriteLine("Page " + i + " - " + e.Message);
Console.WriteLine("Done!");