Problema con update, insert e delete con una gridview/detailsview

martedì 17 luglio 2007 - 14.04

Carmine Profilo | Junior Member

Ho un grave problema... ovvero: non funziona nè l'update, nè
l'insert nè tantomeno il delete quando uso la gridview e/o la detailsview collegata a un SqlDataSource.
L'update praticamente clicco su aggiorna ma dopo i dati continuano a essere
quelli di prima.
L'insert e il delete falliscono... L'insert addirittura con runtime error...
Ad esempio l'insert dice: "la colonna X non può essere nulla" -.-
Praticamente è come se non passasse i parametri...

Questa la update query:

UPDATE miatabella SET val1 = @val1, val2 = @val2 WHERE ID = @ID

Che fare?
Webmaster di thetotalsite.it
Blog: blog.thetotalsite.it
La nuova community: forum.thetotalsite.it

Brainkiller Profilo | Guru

>Ho un grave problema... ovvero: non funziona nè l'update, nè
>l'insert nè tantomeno il delete quando uso la gridview e/o la
>detailsview collegata a un SqlDataSource.
>L'update praticamente clicco su aggiorna ma dopo i dati continuano
>a essere
>quelli di prima.

Ciao,
io in genere procedo così, trascino la GridView sulla pagina Web in modalità Design. Mi sposto sopra la GridView esce lo SmartTag configuro il DataSource, con il Wizard. Ricordati di impostare una chiave primaria sulla tabella. Ad un certo punto ci sono due checkbox, una delle due ti chiede se generare anche i comandi di INSERT/DELETE/UPDATE, la abiliti completi lo Wizard, lanci l'applicazione e tutto dovrebbe funzionare automaticamente. Adotti gli stili richiesti (CSS) relativi alla GridView e sei a posto.

Se funziona, controlli cosa hai sbagliato nel codice che hai scritto tu.

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Carmine Profilo | Junior Member

>io in genere procedo così, trascino la GridView sulla pagina
>Web in modalità Design. Mi sposto sopra la GridView esce lo SmartTag
>configuro il DataSource, con il Wizard. Ricordati di impostare
>una chiave primaria sulla tabella. Ad un certo punto ci sono
>due checkbox, una delle due ti chiede se generare anche i comandi
>di INSERT/DELETE/UPDATE, la abiliti completi lo Wizard, lanci
>l'applicazione e tutto dovrebbe funzionare automaticamente. Adotti
>gli stili richiesti (CSS) relativi alla GridView e sei a posto.

No, se metto di generare automaticamente le query insert/update/delete mi mette poi roba del tipo:

UPDATE miatabella SET val1 = ?, val2 = ? WHERE ID = ?

-.- praticamente con tutti quegli "?".

Ah, uso il MySQLConnector .Net 5.1 con il plugin per visual studio 2005.

Che faccio?

Webmaster di thetotalsite.it
Blog: blog.thetotalsite.it
La nuova community: forum.thetotalsite.it

Brainkiller Profilo | Guru

>No, se metto di generare automaticamente le query insert/update/delete
>mi mette poi roba del tipo:
>Ah, uso il MySQLConnector .Net 5.1 con il plugin per visual studio
>2005.
>UPDATE miatabella SET val1 = ?, val2 = ? WHERE ID = ?

Eh beh, qui allora cambia. il fatto che ci siano ? o @ dipende dal Data Provider. Access per esempio usa i ? mentre SQL Server il @. Allora per lavorare con i DataSources con MySQL dovresti poter usare il SqlDataSource con il driver ODBC per MySQL. Teoricamente non è la migliore soluzione come performance.

Io non conosco MySQLConnector ma immagino che questi pacchetti ti mettano a disposizione dei DataSource ad hoc esempio <asp:MySqlDataSource o simili.

Ciò che ti ho detto nel post precedente si può utilizzare come guida generica visto che il meccanismo poi per l'update sul DB è uguale per tutti.

Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Carmine Profilo | Junior Member

>Eh beh, qui allora cambia. il fatto che ci siano ? o @ dipende
>dal Data Provider. Access per esempio usa i ? mentre SQL Server
>il @. Allora per lavorare con i DataSources con MySQL dovresti
>poter usare il SqlDataSource con il driver ODBC per MySQL. Teoricamente
>non è la migliore soluzione come performance.

No, aspetta, il MySQLConnector non è l' ODBC Connector ma un Driver fatto ad hoc per .net.
Fornisce anche il provider per Visual Studio, quindi da "esplora database" ho aggiunto la connessione al db MySQL.
Riesco quindi a collegare normalmente il datasource.

Ora però non capisco perchè è come se non mi passasse i parametri passati dalla detailsview :-(

Webmaster di thetotalsite.it
Blog: blog.thetotalsite.it
La nuova community: forum.thetotalsite.it

Carmine Profilo | Junior Member

RISOLTO!!!

I parametri, come dicevi tu, non andavano passati con la "@" come in sql server, bensì con "?"!
Grazie!
Webmaster di thetotalsite.it
Blog: blog.thetotalsite.it
La nuova community: forum.thetotalsite.it

samar Profilo | Senior Member

C'ho perso 2 giorni per sta cavolata del ? al posto della @!!!!
GRAZIE!!!!!!!!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5