Salvea a tutti e buona serata.
Ho una pagina dove ricevo filtrato l'id dell'amministratore e estraggo i suoi datitramite un DataReader.
Sempre nella stessa pagina estraggo i recoird di altri iscritti e li impagino avendo la possibilità di cliccare su ognuno per andare a una pagina successiva dove potrò aggiornare i loro dati.
I dati degli iscritti li estraggo tramite un dataset.
Ora quando clicco su uno di essi avrei la necessità di passare tramite URL sia l'id dell'iscritto da aggiornare che l'ID dell' amministratore.
Utenti e amministratori si trovano tutti all'interno di una tabella.
Il mio problema è che riesco a passare senza problemi l'id dell'iscritto da aggiornare ma non riesco a recuperare l'id dell'amministratore.
é dovuto al fatto che come detto prima l'id dell'amministratore l'ottengo tramite Datareader mentre l'elenco degli iscritti tramite DataSet.
Ho la possibilità di recuperare l'id dell'amministratore di passarlo come dato nel link?
codice:
<script language="c#" runat="server">
//Estrae i record dal database
public void Seleziona_Record()
{
String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("database/danielaDiCastro.mdb");
OleDbConnection cn = new OleDbConnection(ConnString);
//Apro la connessione;
cn.Open();
//Data adapter
OleDbDataAdapter objAdapter = new OleDbDataAdapter("SELECT * FROM iscritti WHERE Stato = True ORDER BY nomeCognome ASC", cn);
//Creo il dataset per la tabella news sulla sx
DataSet ds = new DataSet();
//Creo il dataset per la tabella sezione news
DataSet dsTbNews = new DataSet();
//Lo riempio
//Calcolo i record da estrarre e riempio il dataset della tabella sezione Attivita
int startRecordTbNews = (int.Parse(PaginaTbNews.Value)-1)*int.Parse(Record_MaxTbNews.Value);
objAdapter.Fill(dsTbNews, startRecordTbNews, int.Parse(Record_MaxTbNews.Value), "iscritti");
GridTbNews.DataSource = dsTbNews.Tables[0].DefaultView;
GridTbNews.DataBind();
//Conta i numero di record Totali
OleDbCommand myCmd = new OleDbCommand("SELECT Count(*) FROM iscritti", cn);
Record_TotTbNews.Value = myCmd.ExecuteScalar().ToString();
cn.Close();
//Controllo i Link
if((int.Parse(PaginaTbNews.Value)-1)<=0){
Prev.Enabled = false;
}
else{
Prev.Enabled = true ;
}
if((int.Parse(PaginaTbNews.Value)*int.Parse(Record_MaxTbNews.Value))>=int.Parse(Record_TotTbNews.Value))
Next.Enabled = false;
else
Next.Enabled = true ;
}
//Controlla che link ha sollevato l'evento e aumenta o diminuisce la pagina corrente
public void Paginazione(object sender, EventArgs e){
if(((LinkButton)sender).ID=="Prev"){
if((int.Parse(PaginaTbNews.Value)-1)>=0){
PaginaTbNews.Value = (int.Parse(PaginaTbNews.Value)-1).ToString() ;
}
}
else if(((LinkButton)sender).ID=="Next"){
if((int.Parse(PaginaTbNews.Value)*int.Parse(Record_MaxTbNews.Value))<int.Parse(Record_TotTbNews.Value)){
PaginaTbNews.Value = (int.Parse(PaginaTbNews.Value)+1).ToString() ;
}
}
Seleziona_Record();
}
//Controlla se é la prima volta che la pagina viene visualizzata e in caso affermativo stampa
//la prima pagina
void Page_Load(Object sender, EventArgs e){
if(!IsPostBack)
Seleziona_Record();
String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("database/danielaDiCastro.mdb");
// Creiamo l'oggetto cn di tipo OleDbConnection
// passando la stringa di connessione al costruttore
OleDbConnection cn = new OleDbConnection(ConnString);
// Apriamo la connessione
cn.Open();
String mail = Request["username"];
// Componiamo la stringa di interrogazione al database
String sql = "SELECT * FROM iscritti WHERE email = '" + mail + "'";
// Creiamo l'oggetto cmd di tipo OleDbCommand
// passando la Sql e la connessione al costruttore dell'oggetto
OleDbCommand cmd = new OleDbCommand(sql, cn);
// Creiamo un oggetto di tipo OleDbDataReader
// Esso è assimilabile a un RecordSet con cursore di tipo forward-only in ASP tradizionale
OleDbDataReader rdr = cmd.ExecuteReader();
rdr.Read();
String email = rdr["email"].ToString();
String chiaveAccesso = rdr["chiaveAccesso"].ToString();
lblMessaggioBenvenuto.Text = "" + rdr["nomeCognome"].ToString() + "";
lblMenu.Text ="- " + "" + "Gestione iscritti non attivi" + "" + "
" + "- " + "" + "Torna indietro" + "";
// Chiudiamo il DataReader
rdr.Close();
// Chiudiamo la connessione al database
cn.Close();
}
</script>
Questo è il codice nel body
codice:
<input type="hidden" id="Record_MaxTbNews" value="5" runat="server">
<input type="hidden" id="PaginaTbNews" value="1" runat="server">
<input type="hidden" id="Record_TotTbNews" runat="server">
<asp:DataList id="GridTbNews" runat="server" CellPadding="0" RepeatLayout="Flow">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"nomeCognome") %>
"><%#DataBinder.Eval(Container.DataItem,"email") %>
</ItemTemplate>
</ASP:DataList>
<asp:LinkButton id="Prev" Text="Prec." OnClick="Paginazione" runat="server" Visible="True" />
<asp:LinkButton id="Next" Text="Succ." OnClick="Paginazione" runat="server" Visible="True" />