Usare delete ed insert into in asp.net

mercoledì 21 settembre 2005 - 14.01

gaspanic Profilo | Newbie

Salve a tutti

sto facendo il mio primo progettino in asp.net
la parte di connessione dati e visualizzazione tutto ok

ora dovrei eliminare dei record ed inserirne altri in una tabella
ho provato in mille modi ma va sempre in errore

questo:
[OleDbException (0x80004005): Impossibile eliminare dalle tabelle specificate.]

ho provato sia con connessione oledb che con adodb ...

qualcuno mi può aiutare???

Grazie!!

Cteniza Profilo | Guru

Se usi un dataset ed hai popolato questo, perchè funzioni devi generare anche i comandi di insert/delete/update.
Se vuoi invece utilizzare i soli comandi sql devi definire un oggetto command, impostarne il testo dei comandi ed eseguirlo sulla connessione aperta.



gaspanic Profilo | Newbie

io ora ho una cosa del genere

Conn1.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath(\Asp.mdb")
Conn1.Open()

sql = "DELETE * FROM Work_Terzisti"
Conn1.Execute(sql)

dove conn1 è adodb.connection

ho provato anche a fare una cosa del genere con oledb connection

sql = "DELETE Work_Terzisti.* FROM Work_Terzisti"

comm = New OleDb.OleDbCommand(sql, conn)

ma nulla mi dice sempre errore...

che la query non è aggiornabile o che non è possibile eliminare dalla tabella specificata

è un database access 2003



PEPE Profilo | Senior Member

Per prima cosa assicurati che il database access abbia i permessi di scrittura (quasi tutti se scordano :D. Compreso me). Poi devi ricordarti di chiudere le connessioni quando finisci di fare le tue cose.

Usa il metodo executenonquery(sql) che ti restituisce un intero che sarebbe il numero di record eliminati.

Ciao,
Luca.

Cteniza Profilo | Guru

Alcuni sql non accettano "Delete tabella.* from Tabella" o "Delete * From Tabella" ma solo "DELETE tabella FROM Tabella"


gaspanic Profilo | Newbie

il database non è protetto in quanto se lo apro a mano ed entro in una tabella mi lascia sia eliminare che aggiungere record..

io ho questo codice:

Dim conn As New OleDb.OleDbConnection
Dim comm As New OleDb.OleDbCommand
Dim sql As String
Dim result As Integer

codice = Request.QueryString("CODCOM")
commessa = Mid(codice, 7)
codice = Mid(codice, 1, 6)

conn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\Asp.mdb")
conn.Open()

sql = "DELETE Work_Terzisti FROM Work_Terzisti"

comm = New OleDb.OleDbCommand(sql, conn)

result = comm.ExecuteNonQuery

l'errore che mi restituisce è questo:


[OleDbException (0x80004005): Impossibile eliminare dalle tabelle specificate.]

non ho proprio idea... ho visitato vari siti ma gli esempi sono sempre quelli...



PEPE Profilo | Senior Member

Per essere sicuro comunque prova a mettere controllo completo su everyone.

gaspanic Profilo | Newbie

è sul mio pc locale con iis, sono administrator... xp prof
non mi da la possibilità di dare i privilegi...


PEPE Profilo | Senior Member

Vai su risorse del computer, strumenti, opzioni cartella.
Vai su visualizzazione.
Devi avere attivata la voce "Utilizza condivisione file semplice (scelta consigliata)"
Disattiva quella voce e rivai sulle proprietà del file access. Vedrai che ora ti fa fare tutto :D:D.

Ciao.

gaspanic Profilo | Newbie

Yeeeeee!

ora funziona tutto!

grazie mille!!

:)


PEPE Profilo | Senior Member

Cmq ora che con everyone ti funziona mettiti a vedere come configurare al meglio i permessi anche considerando che tipo di atuenticazione utilizzi.

Ciao,
Luca.


gaspanic Profilo | Newbie

beh ho messo come main page un'autenticazione con utente e password
che apre una login.aspx dove verifica se sei abilitato o no...

se sei abilitato accedi al resto altrementi torni alla default page...

Dici che basta come protezione?

PEPE Profilo | Senior Member

no io dico al file access.
Se te metti l'accesso a everyone c'e' il rischio che io inserendo l'indirizzo del database nella barra degli indirizzi, ti apre il file e l'utente puo fare tutto :D.

Intendevo quel tipo di protezione.
Io mi pare che avevo levato come utente everyone e avevo messo lettura e scrittura all'utente aspnet.

Cosi' mi pare che funzionava bene.
Non ricordo se ho messo mano anche all'utente anonimo (iwam_pippo) o (iusur_pippo). Ora manco ricordo la dicitura esatta :D.

Fa un po di prove.

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5