Witam,
od niedawna zacząłem programować w C# i spotkałem się z pewnym problemem, w trakcie zaciągania danych z bazy wyrzuca mi wyjątek: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Niestety nie mogę zmienić zapytania które jest wysyłane do SQL więc trzeba coś zoptymalizować w kodzie C# niestety nie mam pojęcia co. Kiedy podaję mały zakres dat które ma uwzględniać np. 2dni jest ok gdy daje więcej to jest problem. Poszukuję więc jakiegoś znawcę który pomoże, proszę więc o pomoc.
Poniżej kod C#
private void to_csv_Click(object sender, EventArgs e)
{
polaczenie = new SqlConnection();
polaczenie.ConnectionString = "Data Source=KRIS\\SQLEXPRESS;" + "Trusted_Connection=yes;" + "database=DUOTES; " + "connection timeout=0";
polaczenie.Open();
DataTable dtt = new DataTable();
//tu tworze obiekt ktory bedzie przechowywal dane w liscie
Tomato hghg = new Tomato();
List<Tomato> probbb = new List<Tomato>();
//-------------------------------------------------------
SqlDataReader czytacz;
SqlCommand zapyta;
zapyta = new SqlCommand("tu jest zapytanie - tabela - (nolock) …");
zapyta.Connection = this.polaczenie;
czytacz = zapyta.ExecuteReader();
dtt.Load(czytacz);
int iloscr = dtt.Rows.Count;
//odczyt danych z SQL i zapis do listy
FileStream fs = new FileStream(@"C:\new\ropo.csv", FileMode.Create);
StreamWriter writer = new StreamWriter(fs, Encoding.UTF8);
if (writer != null)
{
writer.WriteLine(@"Kategoria;Kontrahent;Artykul;Faktury;Data;Wartosc
foreach (DataRow item in dtt.Rows)
{
hghg.ShortName.Add(Convert.ToString(item[0]));
hghg.FullName.Add(Convert.ToString(item[1]));
hghg.ShortName2.Add(Convert.ToString(item[2]));
hghg.FullName2.Add(Convert.ToString(item[3]));
hghg.ShortName3.Add(Convert.ToString(item[4])); hghg.FullName3.Add(float.Parse(Convert.ToString(item[5])));
}
probbb.Add(hghg);
polaczenie.Close();
writer.Close();