| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  07-06-2014, 13:02 | #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 | 
|   |   | 
|  07-06-2014, 13:55 | #2 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 2777
				 | 
		Sembra che stai tentando di leggere dei dati in una struttura che non ne contiene.
		 | 
|   |   | 
|  07-06-2014, 14:05 | #3 | 
| Junior Member Iscritto dal: Dec 2008 
					Messaggi: 26
				 | |
|   |   | 
|  07-06-2014, 14:32 | #4 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 2777
				 | 
		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.
		 | 
|   |   | 
|  07-06-2014, 14:41 | #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 | |
|   |   | 
|  07-06-2014, 14:57 | #6 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 2777
				 | 
		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? | 
|   |   | 
|  07-06-2014, 17:11 | #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 | 
|   |   | 
|  08-06-2014, 10:35 | #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? | |
|   |   | 
|  08-06-2014, 17:00 | #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 | |
|   |   | 
|  08-06-2014, 19:01 | #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: 13:27.









 
		 
		 
		 
		







 
  
 



 
                        
                        










