158 messaggi dal 23 settembre 2005
Ciao!!
Lo so che chiedo troppe volte, ma non riesco a risolvere l'errore System.IndexOutOfRangeException: fatturazioneID che mi viene creato eseguendo questa query:
SELECT * from fatturazione,anagrafica,domini where dominioID=FDominioID and clienteID=DClienteID and DNomeDominio like '" & dominio & "%' and DVisualizza='1' and Fvisualizza='1'


Eppure la query è giusta...
Questa query viene eseguita se il nome di dominio che si è inserito ritorna un solo risultato...
Se ne ritorna di più mi viene visualizzato l'elenco dei nomi di dominio sotto forma di link, e cliccandoci sopra viene passato l'id del dominio alla pagina successiva (che sarebbe la stessa dove si trova la query incriminata) e eseguo quest'altra query:
SELECT * from fatturazione,domini,anagrafica where dominioID='" & dominioID & "' and dominioID=FDominioID and clienteID=DClienteID and Fvisualizza='1' and DVisualizza='1'

che è praticamente uguale a quella precedente, l'unica differenza è che uso l'id del dominio in quanto lo conosco già!
E con questa non mi crea problemi...
Al che...
Dove sbaglio?... perchè mi crea quest'errore??

Grazie
Ciao
Adriana

Adry
_______________________________________________________

Lascia di quando in quando per me qualche sorriso, e ne avrò vita.
- W. Shakespeare -
non credo sia la query, l'errore viene generato quando si tenta di accedere ad un indice fuori della matrice,

in pratica la matrice è "lunga" 5 e vuoi accedere al sesto elemento

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
158 messaggi dal 23 settembre 2005
Questo l'ho capito... ma non riesco a capire come risolvere l'errore...
perchè me lo segnala quando io tento di utilizzare il valore di fatturazioneID in un link passando il suo valore tramite querystring... vorrà mica dire che fatturazioneID è vuoto???

Grazie
Ciao
Adriana
Modificato da adry_tssj il 29 novembre 2005 10.35 -

Adry
_______________________________________________________

Lascia di quando in quando per me qualche sorriso, e ne avrò vita.
- W. Shakespeare -
puoi postare un parte del condice?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
158 messaggi dal 23 settembre 2005
ok...
allora, questa è la funzione Page_Load in cui eseguo le query:
Dim dominio as String=Ctype(Context.Items("dominio"),String)
dominio=Replace(dominio,"'","''")
dominio=Trim(dominio)
        
Dim Conn as OleDbConnection
Dim myOleDbAdapter, myOleDbAdapter2, myOleDbAdapter3, myOleDbAdapter4, MyOleDbAdapter5, myOleDbAdapter6, myOleDbAdapter7, myOleDbAdapter8 as OleDbCommand
Dim rdr,rdr2,rdr3,rdr4,rdr5,rdr6,rdr7,rdr8 As OleDbDataReader
Dim strConn, sqlStr, SqlStr2, sqlStr3,  sqlStr4, sqlStr5, sqlStr6, sqlStr7, sqlStr8 as String
              
Dim strServer As New String (ConfigurationSettings.AppSettings("serverIsp"))
Dim strUID As New String (ConfigurationSettings.AppSettings("uidISP"))
Dim strPWD As New String (ConfigurationSettings.AppSettings("PWDIsp"))
Dim strDatabase As New String (ConfigurationSettings.AppSettings("DatabaseISP"))
Dim cont=0
        
Dim dominioID = ""
        
if Request.QueryString ("dominioID") <> "" then
dominioID = Request.QueryString ("dominioID")
end if
        
If not Page.isPostBack
strConn="Provider=SQLOLEDB;Data Source=" & strServer &"; Initial Catalog=" & strDatabase & "; User ID=" & strUID & "; Password=" & strPWD & ""    
if dominioID = "" then

sqlStr3="SELECT * from fatturazione,anagrafica,domini where dominioID=FDominioID and clienteID=DClienteID and DNomeDominio like '" & dominio & "%' and DVisualizza='1' and Fvisualizza='1'"

myOleDbAdapter3 = New OleDbCommand (sqlStr3,Conn)
rdr3 = myOleDbAdapter.ExecuteReader()  
RFattura.DataSource=rdr3
RFattura.DataBind()
rdr3.Close()

Else

sqlStr3="SELECT * from fatturazione,domini,anagrafica where dominioID='" & dominioID & "' and dominioID=FDominioID and clienteID=DClienteID and Fvisualizza='1' and DVisualizza='1'"
myOleDbAdapter3 = New OleDbCommand (sqlStr3,Conn)
rdr3 = myOleDbAdapter.ExecuteReader()  
RFattura.DataSource=rdr3
RFattura.DataBind()
rdr3.Close()
....


Questo è il pezzo in cui mi viene incluso il panel nella pagina .aspx:
<!-- #include file="PFattura.aspx" -->


Questo è il primo pezzo della pagina PFattura.aspx dove mi si crea l'errore:
<asp:Panel ID="PFattura" Runat="server" Visible="False">
<asp:Repeater id="RFattura" Runat="server">
<HeaderTemplate>

<asp:Table Runat="server" ID="Table5" Width="70%" HorizontalAlign="Center">
<asp:TableRow Height="30">
<asp:TableCell HorizontalAlign="Left" CssClass="titolo">
<img src="img/fatturazione.png">FATTURAZIONE:
</asp:TableCell>
<asp:TableCell HorizontalAlign="Right">
<asp:LinkButton Runat="server" ID="close" OnClick="chiudiPFatt"><img src="img/close_5.jpg" border="0"></asp:LinkButton>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow height="5">
<asp:TableCell>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</HeaderTemplate>

<ItemTemplate>
<asp:Table Runat="server" HorizontalAlign="Center" CellPadding="0" CellSpacing="0" Width="45%"  ID="Table4">
<asp:TableRow>
<asp:TableCell cssClass="scadenza" ColumnSpan="2" HorizontalAlign="Center">
<%# datiNnDisp(Databinder.Eval(Container.DataItem,"FStato").ToString())%>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell CssClass="tabella" Width="50%" verticalAlign="bottom">
Dominio:
</asp:TableCell>
<asp:TableCell CssClass="normale" verticalAlign="bottom">
<%# Container.DataItem("DNomeDominio")%>
</asp:TableCell>
<asp:TableCell ColumnSpan="2" HorizontalAlign="Right" CssClass="tabella">

<b>'su questo link mi si crea l'errore</b>
<a href='edit_fattura.aspx?fatturaID=<%# Container.DataItem("fatturazioneID")%>'><img src="img/edit_th.gif" align=absmiddle border="0">Modifica</a>
<br>
<a onclick="return cancellazioneFattura()" href='cancell_ok.aspx?dominioID=<%#Container.DataItem("dominioID")%>&tipo=fattura&fatturaID=<%# Container.DataItem("fatturazioneID")%>'><img src="img/delete_th.gif" align=absmiddle border="0">Elimina</a>
</asp:TableCell>
</asp:TableRow>
......


Lo so, è un macello...

Ciao
Adriana

Adry
_______________________________________________________

Lascia di quando in quando per me qualche sorriso, e ne avrò vita.
- W. Shakespeare -
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

Domanda stupida, visto che utilizzi delle join, sei sicura che il campo che viene estratto si chiami esattamente fatturazioneID. potrebbe chiamarsi per assurdo fatturazioneID1 o qualcosa di simile, se è presente su più di una delle tabelle in join.

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
158 messaggi dal 23 settembre 2005
sì, ne sono sicurissima... ho fatto un controllo... ed è presente solo sulla tabella fatturazione...
tra l'altro a questo punto non dovrebbe funzionare neanche nel caso in cui eseguo la query con l'id del dominio anzichè il nome del dominio...

Grazie
Ciao
Adriana

Adry
_______________________________________________________

Lascia di quando in quando per me qualche sorriso, e ne avrò vita.
- W. Shakespeare -
158 messaggi dal 23 settembre 2005
allora...
ho provato ad eliminare sulla pagina di elenco il server.Transfer alla pagina di dettaglio se il risultato è uno solo...
quindi per forza ho il link e passo alla pagina di dettaglio l'id del dominio tramite querystring e funziona, non mi crea errori e mi visualizza perfettamente il panel PFattura...
Quindi fatturazioneID non è vuoto... e quindi capisco ancora meno perchè mi crea l'eccezione!!

Potrei aggirare l'ostacolo eliminando il controllo nella pagina di elenco come ho fatto ora, ma non mi sembra giusto...
Non professionale, per lo meno...

Spero che questo aggiornamento possa essere utile per aiutarmi a capire e risolvere il problema...

Ciao
Adriana

Adry
_______________________________________________________

Lascia di quando in quando per me qualche sorriso, e ne avrò vita.
- W. Shakespeare -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.