Sapere record corrente da db mysql

giovedì 20 settembre 2007 - 20.48

Anonimo Profilo | Senior Member

Ciao,
ho questo codice:

public void Odbc_Eventi()
{
OdbcConnection con = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Uid=root; Pwd=root; Database=shap");

string strSQL = "SELECT * FROM tbl_eventi GROUP BY Evento";
DataSet ds = new DataSet();

OdbcCommand cmd = new OdbcCommand(strSQL, con);
con.Open();
OdbcDataReader dr = cmd.ExecuteReader();

listView1.Items.Clear();
listView1.Columns.Clear();
listView1.Items.Clear();
listView1.Columns.Add("Ora Inizio", 70, HorizontalAlignment.Left);
listView1.Columns.Add("Ora Fine", 70, HorizontalAlignment.Left);
listView1.Columns.Add("Nome Evento", 100, HorizontalAlignment.Left);
listView1.Columns.Add("File:", 100, HorizontalAlignment.Left);
listView1.Columns.Add("Tipo:", 100, HorizontalAlignment.Left);

ListViewItem li;

while (dr.Read())
{
li = listView1.Items.Add(dr["Inizio"].ToString());
li.SubItems.Add(dr["Fine"].ToString());
li.SubItems.Add(dr["Evento"].ToString());
li.SubItems.Add(dr["File"].ToString());
li.SubItems.Add(dr["Tipo"].ToString());
tool_status.Text = "" + dr["File"].ToString() +"";
File tagFile = File.Create("" + dr["File"].ToString() + "");
txtTitolo.Text = tagFile.Tag.Title;
textBox6.Text = tagFile.Tag.Album;
textBox7.Text = tagFile.Tag.FirstPerformer;
textBox9.Text = tagFile.Tag.Year.ToString();

audio = new Audio("" + dr["File"].ToString() +"");

// QUI VOGLIO SAPERE IL RECORD CORRENTE O MEGLIO IL SEGUENTE
textBox8.Text = "" + dr["File"].ToString() +"";
// QUI VOGLIO SAPERE IL RECORD CORRENTE O MEGLIO IL SEGUENTE


} dr.Close();
con.Close();
}



Mi sapete dire come fare?

grazie

Brainkiller Profilo | Guru

>Ciao,
>ho questo codice:
>Mi sapete dire come fare?

Non si può fare. Il DataReader è forward-only, va solo avanti. Quindi non puoi farlo andare avanti per tornare indietro.
Il record corrente ce l'hai solo quando fai un dr.Read() e quello successivo lo sai solo dopo un dr.Read().
Se vuoi più flessibilità utilizza invece un DataSet.

ds.Tables[0].Rows[i]

In questo caso variando il valore di i accedi ai record precedenti o successivi.
Ciao



David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Xnetus Profilo | Junior Member

Oppure potresti utilizzare una Collection, in modo da poter andare avanti e indietro come vuoi.



http://blogs.dotnethell.it/Xnetus/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5