|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Dec 2008
Messaggi: 26
|
visual studio [c#]
ciao a tutti mi chiamo giuseppe, scrivo questo post perche' ho un problema che non riesco a risolvere e richiedo gentilmente un vostro aiuto.
L'errore che ricevo e' il seguente : Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di leggere l'analisi dello stack per ulteriori informazioni sull'errore e dove ha avuto origine nel codice. Dettagli eccezione: System.IndexOutOfRangeException: Non c'è riga alla posizione 0. Errore Origine: Un'eccezione non gestita è stata generata durante l'esecuzione della richiesta Web corrente. Per informazioni sull'origine e la posizione dell'eccezione possono essere identificate utilizzando l'analisi dello stack dell'eccezione riportata di seguito: Stack Trace: [IndexOutOfRangeException: Non c'è riga alla posizione 0.] ***System.Data.RBTree `1.GetNodeByIndex (Int32 IndiceUtente) 1.649.146 ***Logistica.DPI.assegnaDPI.ddlutenti_SelectedIndexChanged (Object sender, EventArgs e) 2143 ***System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged (EventArgs e) 118 ***System.Web.UI.WebControls.DropDownList.RaisePostDataChangedEvent () 143 ***System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +10 ***System.Web.UI.Page.RaiseChangedEvents () 134 ***System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 5201 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Sembra che stai tentando di leggere dei dati in una struttura che non ne contiene.
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Dec 2008
Messaggi: 26
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Senza maggiori informazioni non posso risponderti. E' chiaro che per qualche motivo la struttura a cui stai accedendo non contiene dati. E' da verificare se questo sia da considerarsi corretto o meno. Nel primo caso l'errore sta nel tentativo di accedervi, nel secondo caso è da verificare perché la struttura non è stata riempita.
|
|
|
|
|
|
#5 | |
|
Junior Member
Iscritto dal: Dec 2008
Messaggi: 26
|
Quote:
namespace Logistica.DPI { public partial class assegnaDPI : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Session["username"] == null) Response.Redirect("~/Account/Login.aspx?msg=Sessione Scaduta. Ripetere il Login!"); if (!IsPostBack) { ddlqualifica.DataSource = ManagerUser.getQualifiche(0, "", "nome", "asc"); ddlqualifica.DataTextField = "nome"; ddlqualifica.DataValueField = "nome"; ddlqualifica.DataBind(); ddlqualifica.Items.Insert(0, new ListItem("", "")); ddlqualifica.Items.Insert(1, "Altro"); ddlqualifica.Items.Insert(2, "Coperta"); ddlqualifica.Items.Insert(3, "Macchina"); DataTable dt = ManagerUser.GetAllUser(0, txtcognome.Text, txtnome.Text, txtmatricola.Text, txtmercantile.Text, ddlqualifica.SelectedValue, "", "", "", "", "", "", "", "", "", (Session["tipodpi"].ToString().Equals("1") ? "1" : ""), "", (Session["tipodpi"].ToString().Equals("2") ? "1" : ""), (Session["tipodpi"].ToString().Equals("3") ? "1" : ""),"","", "cognome", "asc"); for (int i = 0; i < dt.Rows.Count; i++) { ddlutenti.Items.Add(new ListItem(dt.Rows[i]["cognome"] + " " + dt.Rows[i]["nome"] + "-" + dt.Rows[i]["matricola"] + " " + dt.Rows[i]["qualifica"], dt.Rows[i]["id_utente"].ToString())); } ddlutenti.Items.Insert(0, new ListItem("", "")); if (!Session["dpi"].ToString().Equals("2") && !Session["mdpimes"].ToString().Equals("1") && !Session["mdpivsg"].ToString().Equals("1")) Bassegna.Enabled = false; } } protected void Button1_Click(object sender, EventArgs e) { lblsezione.Visible = false; lblsezionevalore.Visible = false; lblqualifica.Visible = false; lblaualificavalore.Visible = false; lblerror.Visible = false; griglia.Visible = false; Bassegna.Visible = false; ddlutenti.Items.Clear(); DataTable dt = ManagerUser.GetAllUser(0, txtcognome.Text, txtnome.Text, txtmatricola.Text, txtmercantile.Text, ddlqualifica.SelectedValue, "", "", "", "", "", "", "", "", "", (Session["tipodpi"].ToString().Equals("1") ? "1" : ""), "",(Session["tipodpi"].ToString().Equals("2")?"1":""),(Session["tipodpi"].ToString().Equals("3")?"1":""),"","", "cognome", "asc"); for (int i = 0; i < dt.Rows.Count; i++) { ddlutenti.Items.Add(new ListItem(dt.Rows[i]["cognome"] + " " + dt.Rows[i]["nome"] + "-" + dt.Rows[i]["matricola"] + " " + dt.Rows[i]["qualifica"], dt.Rows[i]["id_utente"].ToString())); } ddlutenti.Items.Insert(0, new ListItem("", "")); } protected void ddlutenti_SelectedIndexChanged(object sender, EventArgs e) { lblsezione.Visible = true; lblsezionevalore.Visible = true; lblqualifica.Visible = true; lblaualificavalore.Visible = true; lblerror.Visible = false; int id = 0; try { id = Convert.ToInt32(ddlutenti.SelectedValue); } catch (Exception) { } DataTable dt = ManagerUser.GetAllUser(id, txtcognome.Text, txtnome.Text, txtmatricola.Text, txtmercantile.Text, ddlqualifica.SelectedValue, "", "", "", "", "", "", "", "", "", (Session["tipodpi"].ToString().Equals("1") ? "1" : ""), "", (Session["tipodpi"].ToString().Equals("2") ? "1" : ""), (Session["tipodpi"].ToString().Equals("3") ? "1" : ""),"","", "cognome", "asc"); lblaualificavalore.Text = dt.Rows[0]["qualifica"].ToString(); lblsezionevalore.Text = dt.Rows[0]["sezione"].ToString(); Translate tt = new Translate(); griglia.Columns[0].HeaderText = griglia.Columns[1].HeaderText = tt.TranslateTXT("//Resource/item[@name='misura']");tt.TranslateTXT("//Resource/item[@name='cnome']"); griglia.Columns[2].HeaderText = tt.TranslateTXT("//Resource/item[@name='partecorpo']"); griglia.Columns[3].HeaderText = tt.TranslateTXT("//Resource/item[@name='quantita']"); griglia.Columns[4].HeaderText = tt.TranslateTXT("//Resource/item[@name='dataconsegna']"); griglia.Columns[5].HeaderText = tt.TranslateTXT("//Resource/item[@name='datascadenza']"); griglia.Columns[6].HeaderText = tt.TranslateTXT("//Resource/item[@name='destinatari']"); griglia.DataSource = ManagerDPI.getDPISpettanti(dt.Rows[0]["sezione"].ToString(), dt.Rows[0]["qualifica"].ToString(),Session["tipodpi"].ToString()); griglia.DataBind(); griglia.Visible = true; Bassegna.Visible = true; Bassegna.Enabled = true; } protected void griglia_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DropDownList ddl = (DropDownList)e.Row.FindControl("ddlmisura"); DataTable dt = ManagerDPI.getDPIinMagazzino(0, Convert.ToInt32(griglia.DataKeys[e.Row.RowIndex].Value), "", "",Session["tipodpi"].ToString(), "descrizione", "asc"); for (int i = 0; i < dt.Rows.Count; i++) { if (Convert.ToInt32(dt.Rows[i]["quantita"].ToString()) > 0) ddl.Items.Add(new ListItem(dt.Rows[i]["descrizione"].ToString(), dt.Rows[i]["id"].ToString())); } if (ddl.Items.Count > 0) { ddl.Items.Insert(0, new ListItem("", "")); ddl.Enabled = true; TextBox tb = (TextBox)e.Row.FindControl("txtdataconsegna"); tb.Enabled = true; tb.Text = DateTime.Now.ToString("dd/MM/yyyy"); tb = (TextBox)e.Row.FindControl("txtdatascadenza"); tb.Enabled = true; tb = (TextBox)e.Row.FindControl("txtquantita"); tb.Enabled = true; } else { ddl.Items.Insert(0, new ListItem("N/A", "")); ddl.Enabled = false; TextBox tb = (TextBox)e.Row.FindControl("txtdataconsegna"); tb.Enabled = false; tb = (TextBox)e.Row.FindControl("txtdatascadenza"); tb.Enabled = false; tb = (TextBox)e.Row.FindControl("txtquantita"); tb.Enabled = false; } } } protected void Bassegna_Click(object sender, EventArgs e) { bool esito = false; OracleConnection connection = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()); connection.Open(); OracleTransaction tran = connection.BeginTransaction(); esito = ManagerDPI.aggiornaDPIcorrenti(connection, tran, Convert.ToInt32(ddlutenti.SelectedValue)); if (esito) { int contatore = 0; for (int i = 0; i < griglia.Rows.Count; i++) { DropDownList ddl = (DropDownList)griglia.Rows[i].FindControl("ddlmisura"); TextBox quantita = (TextBox)griglia.Rows[i].FindControl("txtquantita"); TextBox data_consegna = (TextBox)griglia.Rows[i].FindControl("txtdataconsegna"); TextBox data_scadenza = (TextBox)griglia.Rows[i].FindControl("txtdatascadenza"); if (ddl.Enabled && ddl.SelectedIndex>0) { if (!quantita.Text.Equals("0")) { esito = ManagerDPI.assegnaDPI(connection, tran, Convert.ToInt32(ddlutenti.SelectedValue), Convert.ToInt32(griglia.DataKeys[i].Value), Convert.ToInt32(ddl.SelectedValue), "", data_consegna.Text, data_scadenza.Text, Convert.ToInt32(quantita.Text)); if (!esito) { Llblerror.Key= "erroreassegnadpi"; lblerror.ForeColor = Color.Red; lblerror.Visible = true; tran.Rollback(); connection.Close(); return; } contatore++; } } } if (contatore > 0) { Llblerror.Key = "assegnazionedpi"; lblerror.ForeColor = Color.Green; lblerror.Visible = true; tran.Commit(); connection.Close(); OpenNewWindow("PDFReportDPIUtente.aspx?id_utente=" + ddlutenti.SelectedValue + "&corrente=1&dal=&al=&dal1=&al1=&sortExp=&sortDir="); Bassegna.Enabled = false; } else { Llblerror.Key = "nodpiselected"; lblerror.ForeColor = Color.Red; lblerror.Visible = true; tran.Rollback(); connection.Close(); } } else { Llblerror.Key = "erroreassegnadpi"; lblerror.ForeColor = Color.Red; lblerror.Visible = true; tran.Rollback(); connection.Close(); } } public void OpenNewWindow(string url) { ClientScript.RegisterStartupScript(this.GetType(), "newWindow", String.Format("<script>window.open('{0}');</script>", url)); } } } grazie 1000 |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Mettilo in un tag CODE, altrimenti non si capisce nulla.
Puoi commentare anche un po' la logica del programma in modo da far capire il contesto e la finalità e rendere più facile la comprensione del codice? |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
L'aiuto che il dump dello stack ti fornisce e' essenziale.
Purtroppo hai incollato il codice cosi' com'e', quindi ci stai negando proprio questo aiuto. Sarebbe meraviglioso sapere qual e' la riga 2143!! L'unica informazione che hai lasciato passare e' che l'errore e' all'interno del metodo ddlutenti_SelectedIndexChanged() e che si tratta di un accesso ad un array alla posizione 0, che sembra non esistere. Codice:
protected void ddlutenti_SelectedIndexChanged(object sender, EventArgs e)
{
lblsezione.Visible = true;
lblsezionevalore.Visible = true;
lblqualifica.Visible = true;
lblaualificavalore.Visible = true;
lblerror.Visible = false;
int id = 0;
try
{
id = Convert.ToInt32(ddlutenti.SelectedValue);
}
catch (Exception)
{ }
DataTable dt = ManagerUser.GetAllUser(id, txtcognome.Text, txtnome.Text, txtmatricola.Text, txtmercantile.Text, ddlqualifica.SelectedValue, "", "", "", "", "", "", "", "", "", (Session["tipodpi"].ToString().Equals("1") ? "1" : ""), "", (Session["tipodpi"].ToString().Equals("2") ? "1" : ""), (Session["tipodpi"].ToString().Equals("3") ? "1" : ""),"","", "cognome", "asc");
lblaualificavalore.Text = dt.Rows[0]["qualifica"].ToString();
lblsezionevalore.Text = dt.Rows[0]["sezione"].ToString();
Translate tt = new Translate();
griglia.Columns[0].HeaderText =
griglia.Columns[1].HeaderText = tt.TranslateTXT("//Resource/item[@name='misura']");tt.TranslateTXT("//Resource/item[@name='cnome']");
griglia.Columns[2].HeaderText = tt.TranslateTXT("//Resource/item[@name='partecorpo']");
griglia.Columns[3].HeaderText = tt.TranslateTXT("//Resource/item[@name='quantita']");
griglia.Columns[4].HeaderText = tt.TranslateTXT("//Resource/item[@name='dataconsegna']");
griglia.Columns[5].HeaderText = tt.TranslateTXT("//Resource/item[@name='datascadenza']");
griglia.Columns[6].HeaderText = tt.TranslateTXT("//Resource/item[@name='destinatari']");
griglia.DataSource = ManagerDPI.getDPISpettanti(dt.Rows[0]["sezione"].ToString(), dt.Rows[0]["qualifica"].ToString(),Session["tipodpi"].ToString());
griglia.DataBind();
griglia.Visible = true;
Bassegna.Visible = true;
Bassegna.Enabled = true;
}
Codice:
int id = 0;
try
{
id = Convert.ToInt32(ddlutenti.SelectedValue);
}
catch (Exception)
{ }
Codice:
lblaualificavalore.Text = dt.Rows[0]["qualifica"].ToString(); Codice:
griglia.Columns[0].HeaderText =
griglia.Columns[1].HeaderText = tt.TranslateTXT("//Resource/item[@name='misura']");tt.TranslateTXT("//Resource/item[@name='cnome']");
Codice:
griglia.DataSource = ManagerDPI.getDPISpettanti(dt.Rows[0]["sezione"].ToString(), dt.Rows[0]["qualifica"].ToString(),Session["tipodpi"].ToString());
__________________
In God we trust; all others bring data |
|
|
|
|
|
#8 | |
|
Junior Member
Iscritto dal: Dec 2008
Messaggi: 26
|
Quote:
ti domando puo' essere che ho la versione di visual studio 2012 e da quelo che ho capito mi continua a cercare di leggere il file in d:\documenti\visualstudio2010\projecte\ecc.ecc invece il mio attuale percorso e' c:\visualstudio2012. E' possibile che sia questo il problema? se si come potrei fare per risolverlo? |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Fai una prova semplice: apri il tuo file nella cartelle corretta e scrivici dentro qualche stupidata, magari all'inizio del file. Poi torna in Visual Studio, controlla se c'e' e prova a compilare. Dovresti ottenere un errore e riconoscere la tua scritta stupida, giusto? Se non vedi nulla, magari stai puntando da qualche altra parte. Per caso hai copiato il progetto, invece di generarlo ex-novo?
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#10 | |
|
Junior Member
Iscritto dal: Dec 2008
Messaggi: 26
|
Quote:
so che ti sto rompendo.. ma spero che mi puoi aiutare Ultima modifica di contedracula : 08-06-2014 alle 19:12. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:06.




















