Query Update

lunedì 06 novembre 2006 - 18.04

jekisi Profilo | Senior Member

Salve a tutto il forum, avrei il seguente problema:

Cliccando su un button dovrei modificare, da N a S, un campo denominato FATTURATA di una Tabella chiamata TDDT.

Ho provato a fare:
sql = "UPDATE tddt SET fatturata='S' WHERE TDDT.Cliente=" & TextBox1.Text & " AND TDDT.ddt=" & AziendaleDataSet12.Tables("tddt").Rows(DDTTextBox.Text)("ddt")

ma non ottengo nessun risultato


posso dire solamente che in vb 6 facevo:
db.Execute "UPDATE tddt SET fatturata='S' WHERE TDDT.Cliente=" & Text1.Text & " AND TDDT.ddt=" & Data1.Recordset.Fields("ddt")


qualcuno sa aiutarmi?



Distinti Saluti Fabio Messina

Brainkiller Profilo | Guru

>Ho provato a fare:
>sql = "UPDATE tddt SET fatturata='S' WHERE TDDT.Cliente=" & TextBox1.Text
>& " AND TDDT.ddt=" & AziendaleDataSet12.Tables("tddt").Rows(DDTTextBox.Text)("ddt")

Ma poi questo statement come lo esegui ? Con un OleDbCommand e tramite il metodo ExecuteNonquery ?
Ciao

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

jekisi Profilo | Senior Member

Public Class Form4
Public ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Form5.PercorsoAnnoFinanziarioTextBox.Text

Public Cn As New OleDb.OleDbConnection(ConnString)
Public dr As OleDb.OleDbDataReader
Public cmd As OleDb.OleDbCommand
Public sql As String



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Cn.Open() 'apro la connessione al database
sql = "UPDATE tddt Set fatturata='S' WHERE TDDT.Cliente=" & TextBox1.Text & " AND TDDT.ddt=" & AziendaleDataSet3.Tables("tddt").Rows(DDTTextBox.Text)("ddt")
cmd = New OleDb.OleDbCommand(sql, Cn)
dr = cmd.ExecuteReader
Cn.Close()
End Sub

Brainkiller Profilo | Guru

Sostitusici questa riga:

dr = cmd.ExecuteReader

con questa:

cmd.ExecuteNonQuery();

Ciao

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

jekisi Profilo | Senior Member

niente, non lo modifica

Brainkiller Profilo | Guru

>niente, non lo modifica

Allora, fai una Console.Writeline della query così come l'hai costruita.
Copiala e vai in Access, lanciala e ti dovrebbe dire:

Stai aggiornando n records.

Dove n è il numero di record che modifichi. Se esce 0 significa che hai sbagliato query ed è per quello che non ti aggiorna niente.

Ciao

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

jekisi Profilo | Senior Member

Da access non ho capito come si fa, ma dal querybuilder di vb funziona benissimo

Brainkiller Profilo | Guru

>Da access non ho capito come si fa, ma dal querybuilder di vb
>funziona benissimo

Quello che volevo farti capire erano queste 3 cose:

1) o il db che stai usando nella connessione è un altro rispetto a quello da cui leggi i dati e quindi ti sembra che non funzioni
2) o il codice che hai scritto per eseguire la query non è esatto (ma mi sembra esatto)
3) oppure la query che stai lanciando non aggiorna nessun record (esempio: update customers where customerid=-1 non aggiorna nessun record se gli ID cliente sono positivi) quindi devi riscrivere la query perchè è errata.

Il problmea è in uno di questi tre punti. Visto che il 2) abbiamo appurato non è, mancano gli altri due.
Ciao

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

jekisi Profilo | Senior Member

Facciamo una cosa, sempre se casomai qualcuno può darci un' ochiata, magari sono io che mi spiego male:
Per discuterne meglio, lascio il mio contatto di messenger:

Fabiointernational@msn.com


se potete contattarmi.............




Distinti saluti Fabio Messina
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