|
|
IN-VESTI DNW!!! Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta. Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni Effettua il pagamento usando IWBank Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione. Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt. Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!! .:DotNetWork Founders:.
|
|
|
|
|
[ASP.Net Gridview] eccezione solo con alcuni valori
Ultimo Post 07 mag 2008 07.35 by Rudy (DNW TEAM). 5 Risposte.
|
Ordina:
|
 Posts:435
 |
| 30 apr 2008 17.30 |
|
Ciao, Situazione: Pagina ASP con una gridview legata ad un ObjectDataSource che a sua volta si riferisce ad un dataset tipizzato creato con l'IDE. il tableadapter ha 2 metodi, uno standard che estrae tutto, ed uno personalizzato con 2 parametri: @data ed @escludi. l'obbiettivo e' quello di estrarre tutti i record di una tabella relativi ad una @data che abbiano il campo trasmesso <> @escludi Se provo il metodo del tableadapter con "anteprima dati" mettendo '0' oppure '1' o '2' tutto ok, mi estrae quelli che hanno 1, 0 o tutti. Deduco quindi che tutto funziona, ma una volta che faccio il bind della gridview ottengo un'eccezione che dice: Impossibile attivare i vincoli. Una o più righe contengono valori che violano il vincolo non-null, unique o foreign-key. per passare i parametri all' ObjectDataSource le ho provate tutte, adesso uso delle variabili di session (questa e' una response write prima del bind) Session datareport 30/04/2008 Session escludi 1 l'unico valore che riesco a passare senza errori e' '1', qualunque altra cosa genera l'eccezione di cui sopra. Non credo che sia un problema di query, altrimenti non funzionerebbe nell'anteprima del dataset. Suggerimenti su dove sbattere la testa ? Grazie, Max. |
|
|
|
|
 Posts:435
 |
| 06 mag 2008 09.41 |
|
Up...  |
|
|
|
|
 Posts:657
 |
| 06 mag 2008 09.57 |
|
Inviato da Max on 30/04/2008 18.30.20 Ciao, Situazione: Pagina ASP con una gridview legata ad un ObjectDataSource che a sua volta si riferisce ad un dataset tipizzato creato con l'IDE. il tableadapter ha 2 metodi, uno standard che estrae tutto, ed uno personalizzato con 2 parametri: @data ed @escludi. l'obbiettivo e' quello di estrarre tutti i record di una tabella relativi ad una @data che abbiano il campo trasmesso <> @escludi Se provo il metodo del tableadapter con "anteprima dati" mettendo '0' oppure '1' o '2' tutto ok, mi estrae quelli che hanno 1, 0 o tutti. Deduco quindi che tutto funziona, ma una volta che faccio il bind della gridview ottengo un'eccezione che dice: Impossibile attivare i vincoli. Una o più righe contengono valori che violano il vincolo non-null, unique o foreign-key. per passare i parametri all' ObjectDataSource le ho provate tutte, adesso uso delle variabili di session (questa e' una response write prima del bind) Session datareport 30/04/2008 Session escludi 1 l'unico valore che riesco a passare senza errori e' '1', qualunque altra cosa genera l'eccezione di cui sopra. Non credo che sia un problema di query, altrimenti non funzionerebbe nell'anteprima del dataset. Suggerimenti su dove sbattere la testa ? Grazie, Max. -Il dataset tipizzato ha più tabelle in relazione? -Devi fare solo una select ma hai attivato anche l'autogenerazione della delete,insert,update? -Il tipo di dati dei parametri è corretto? -Prova a postare il codice asp.net della pagina che lo vediamo. |
|
| Rudy Azzan |
|
|
 Posts:435
 |
| 06 mag 2008 10.20 |
|
Nella pagina asp ho un controllo datepicker per selezionare la data ed una CheckBox per selezionare deselzionata di default che nell'evento CheckedChanged cambia il valore di "Escludi": Checked: escludi = "2" Unchecked Escludi ="1" Questo perche' dovrei visualizzare solo quelli che hanno trasmesso = "0" di default o in alternativa tutti i record. La pressione di un button lancia la routine di visualizzazione. Nel dataset ci sono 2 tabelle ma non sono relazionate. Ho generato solo la Query di Select che e' questa: SELECT dbo.L_ODL.CODODP AS IO, dbo.L_ODL.CODORDINE, SUM(dbo.S_ODL.LORDO) AS Lordo, SUM(dbo.S_ODL.SCARTI) AS Scarti, SUM(dbo.S_ODL.LORDO) - SUM(dbo.S_ODL.SCARTI) AS Netto, dbo.L_ODL.DESPARTEODP, dbo.L_ODL.LOTTO, dbo.L_ODL.STATUS, dbo.L_ODL.DTFINEEFF, dbo.L_ODL.HFINEEFF, dbo.S_ODL.CODCDL, dbo.S_ODL.CODODL FROM dbo.S_ODL LEFT OUTER JOIN dbo.L_ODL ON dbo.S_ODL.CODODL = dbo.L_ODL.CODODL WHERE (dbo.S_ODL.FLAGAPERTO = '0') AND (LEFT(dbo.L_ODL.CODORDINE, 1) = 'F') AND (dbo.S_ODL.DATAINIZIO = CONVERT(DATETIME, DATEADD(dd, - 1, @data), 102)) AND (dbo.S_ODL.ORAINIZIO >= 21600) AND (dbo.S_ODL.TRASMESSO <> @escludi) OR (dbo.S_ODL.FLAGAPERTO = '0') AND (LEFT(dbo.L_ODL.CODORDINE, 1) = 'F') AND (dbo.S_ODL.DATAINIZIO = @data) AND (dbo.S_ODL.ORAINIZIO < 79200) AND (dbo.S_ODL.TRASMESSO <> @escludi) AND (dbo.S_ODL.TURNO = 3) GROUP BY dbo.L_ODL.CODORDINE, dbo.L_ODL.CODODP, dbo.L_ODL.DESPARTEODP, dbo.L_ODL.LOTTO, dbo.L_ODL.DTFINEEFF, dbo.L_ODL.HFINEEFF, dbo.L_ODL.STATUS, dbo.S_ODL.CODCDL, dbo.S_ODL.CODODL ORDER BY dbo.L_ODL.CODODP (e funziona in anteprima dati, sia con @escludi =0 che con @escludi = 1 o 2) la parte di codice che genera l'errore e' questa: Protected Sub btnShowData_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowData.Click datareport = GMDatePicker1.Date.ToShortDateString Session.Item("datareport") = datareport Session.Item("escludi") = escludi Label1.Text = "Report di produzione del giorno: " & datareport.ToShortDateString Response.Write("Session datareport " & Session.Item("datareport") & "<br>") Response.Write("Session escludi " & Session.Item("escludi") & "<br>") GridView1.DataBind() End Sub datareport e valore di "escludi" sono corretti (ho messo i response.write apposta..) Evidentemente mi sono incasinato da qualche parte... Grazie. Max. |
|
|
|
|
 Posts:435
 |
| 06 mag 2008 10.24 |
|
Aggiungo anche questo: La gridview e' bindata ad un objectdatasource che ha come origine dati il metodo del dataset. Anche levando la riga datagridview1.bind() ottengo l'errore riportato sopra in questo punto: Riga 4179: } Riga 4180: DSCaricoDati.S_ODLDataTable dataTable = new DSCaricoDati.S_ODLDataTable(); Riga 4181: this.Adapter.Fill(dataTable); <------- qui Riga 4182: return dataTable; Riga 4183: } |
|
|
|
|
 Posts:657
 |
| 07 mag 2008 07.35 |
|
Forse hai dimenticato di inizializzare qualcosa, o passi qualche tipo di dato sbagliato, se in visualizzazione funziona. |
|
| Rudy Azzan |
|
|
| Non sei autorizzato ad inviare una risposta. |
|
Active Forums 4.1
|
|
|