Avatar
Martin Svoboda:

Čaute,

neviete ako by som vedel v datagridview urobiť automatický "refresh" keď do sql pridám naový riadok? button-timer neprichádza do úvahy.
Rozmýšľal som nad niejakým porovnaním počtov dát medzi sql a datagridview.
Ďakujem.

 
Odpovědět 9.12.2015 9:20
Avatar
Odpovídá na Martin Svoboda
Michal Štěpánek:

Jak ta data do toho DGV načítáš? Já dělám kolekci nebo datatable, takže vždycky vyprázdním a znovu načtu kolekci nebo datatable...

Nahoru Odpovědět 9.12.2015 14:50
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Martin Svoboda:

Zatiaľ to mám len cez button

private void data_Click(object sender, EventArgs e)
       {
           string connectionString = "Server=;Database=OitDB;Uid=martin;Pwd=;";
           string sql = "SELECT datum as 'Dátum',predmet as 'Predmet', pc as 'Od', sprava as 'Správa' FROM OitDB.nrp";
           MySqlConnection connection = new MySqlConnection(connectionString);
           MySqlDataAdapter dataadapter = new MySqlDataAdapter(sql, connection);
           DataSet ds = new DataSet();


           connection.Open();
           dataadapter.Fill(ds, "nrp");
           connection.Close();
           dataGridView1.DataSource = ds;
           dataGridView1.DataMember = "nrp";
           dataGridView1.Columns[0].Width = 125;
           dataGridView1.Columns[1].Width = 500;
           dataGridView1.Columns[2].Width = 125;
           dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount - 1;
           dataGridView1.AllowUserToAddRows = false;




       }
 
Nahoru Odpovědět 9.12.2015 14:56
Avatar
Martin Svoboda:

No ja by som potreboval niečo také, kde by som sa vedel voľne pohybovať po tabuľke keď sa budú načítavať nové dáta. Keď to je cez button a timer tak to za každým hodí na poslednú hodnotu takže si nemôžem v pokoji prescrollovať tabuľku.

 
Nahoru Odpovědět 9.12.2015 14:59
Avatar
Martin Svoboda:

skúšam to takto:
ale takéto riešenie mi načíta dáta len pri spustení programu. Neviete niekto ako by som vedel znovu načítať DGV ked do MySql pribudne nový riadok?
Rozmýšlal som porovnávať počet riadkov medzi MySql a DGV. Nerobil to už niekto?

 private void Form1_Load(object sender, EventArgs e)
        {
            FillData();
}
public void FillData()
       {

           using (MySqlConnection myConnection = new MySqlConnection("Server=;Database=OitDB;Uid=martin;Pwd=;"))
           {
               myConnection.Open();

               using (MySqlDataAdapter sqlDa = new MySqlDataAdapter("select * from nrp", myConnection))
               {
                   DataTable dt = new DataTable();
                   sqlDa.Fill(dt);
                   dataGridView1.DataSource = dt;
                   this.dataGridView1.Refresh();
                   dataGridView1.Columns[0].Width = 125;
                   dataGridView1.Columns[1].Width = 500;
                   dataGridView1.Columns[2].Width = 125;
                   dataGridView1.AllowUserToAddRows = false;
                   dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount - 1;
               }

           }
       }
 
Nahoru Odpovědět 12.12.2015 12:36
Avatar
Odpovídá na Martin Svoboda
Michal Štěpánek:

Tu proceduru "FillData();" můžeš spustit vždycky po přidání záznamu, ne?

Nahoru Odpovědět 12.12.2015 19:28
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
Martin Svoboda:

teraz pozerám že som zle formuloval otázku na začiatku ... takže robím taký messenger ku nám do firmy na princípe insert, select mysql. Takže potrebujem robiť "refresh" keď sa v mysql objavý nový riadok. Procedúru Filldata(); viem použiť len ak ja vykonám INSERT ale ak to odíde z iného PC, tak ja to neuvidím a naopak. Jeden pán mi poradil že sa takéto veci robia cez DBMC trigger. No po pravde nikdy som s tým nerobil. Ale určite sa to dá aj inak.
Ak by niekto vedel o niejakom riešení bol by som mu vďačný. :)

 
Nahoru Odpovědět 12.12.2015 19:56
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 7 zpráv z 7.