Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 01:38 Der er 14 kommentarer og
1 løsning

Hvad gør jeg forkert i min oledbdeletecommand?

Hej

Jeg forsøger at slette en post i en table udfra Id, men kan desværre ikke få det til at virke - hvad er det jeg gør galt?
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 01:40 #1
Min kode ser ud som nedenstående:

Public Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim SletkundeID As Integer = TextBox3.Text()
        Me.OleDbConnection1.Open()

        Me.OleDbDataAdapter2.DeleteCommand = Me.OleDbDeleteCommand1
        Me.OleDbDeleteCommand1.CommandText = "DELETE FROM Kunder WHERE KundeID = "" & SletkundeID"
        Me.OleDbDeleteCommand1.Connection = Me.OleDbConnection1
        SletkundeDataset1.Clear()
        OleDbDataAdapter2.Fill(SletkundeDataset1)
        Me.OleDbConnection1.Close()
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 01:51 #2
Damn - jeg glemte OleDbDeleteCommand1.ExecuteNonQuery()

Sorry hvis nogle har brugt tid på at lede efter fejlen
Avatar billede burningice Nybegynder
26. januar 2005 - 01:53 #3
den her

Me.OleDbDeleteCommand1.CommandText = "DELETE FROM Kunder WHERE KundeID = "" & SletkundeID"

skal i hvert fald ikke have " på til sidst

Me.OleDbDeleteCommand1.CommandText = "DELETE FROM Kunder WHERE KundeID = ""& SletkundeID

Bortset fra det kan jeg ikke se hvor at du rent faktisk prøver at slette noget
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 01:56 #4
Nej koden er blevet lidt rodet, da jeg ikke helt var klar over hvad der var galt, så jeg prøvede lidt af hvert.
Der er noget der skal slettes, men hvis jeg husker at indsætte
OleDbDeleteCommand1.ExecuteNonQuery()
Så kan jeg slette den markede post i min datagrid, og det var det jeg gerne ville.
Jeg uploader lige koden når jeg bliver helt færdigt - skal lige have min anden oprettede spørgsmål til at virke! (overflyt data fra én form til en anden)

Men tak fordi du kiggede på det...
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 02:01 #5
Færdige kode

Public Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim SletkundeID As Integer = TextBox3.Text()
        Dim MsgBoxResult As Integer = MsgBox("Sikker på du vil slette den valgte kunde?", MsgBoxStyle.YesNo)
        If MsgBoxResult = 6 Then
            Me.OleDbConnection1.Open()

            Me.OleDbDeleteCommand1.CommandText = "DELETE kundeID FROM(Kunder) WHERE KundeID=" & SletkundeID
            Me.OleDbDeleteCommand1.Connection = Me.OleDbConnection1
            Me.OleDbDeleteCommand1.ExecuteNonQuery()
            Me.OleDbConnection1.Close()
        End If
    End Sub
Avatar billede burningice Nybegynder
26. januar 2005 - 02:02 #6
btw... TextBox3.Text() skal være TextBox3.Text

jeg ved godt at vb.net ikke brokker sig over det, men det retfærdiggør ikke at man ikke behøves at skrive det ordenligt ;)
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 02:04 #7
Nej ok - det kan du have ret i...

takker
Avatar billede burningice Nybegynder
26. januar 2005 - 02:05 #8
og hvis det skal være helt rigtig, skal det være

Dim SletkundeID As Integer = Integer.Parse(TextBox3.Text)

mmm... sometimes i miss those vb-days where you could write whatever you wanted and the compiled figured out what it was you were trying to do :)
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 02:07 #9
Jamen det er noteret!
Avatar billede burningice Nybegynder
26. januar 2005 - 02:17 #10
ved ikke om du nogensinde kommer til at rode med andre sprog end vb.net. Et typisk irretationsmoment for der kommer fra vb-verdenen er at man skal være meget mere præcis, så man kan lige så godt lære det fra starten. Det gør det også meget nemmere for en selv, og andre at læse koden på et senere tidspunkt.

På nogle områder kan c# da godt være en pain in the ass, da selv de mindste og mest basale konverteringer skal være explicitte. Det tvinger dog en til at være 100% klar over hvad der sker i ens kode, og i sidste ende får man mere fejlfri kode ud af det.

Hvis en person kom og sagde til mig at nedenstående kodestump ikke virkede ville jeg ikke være istand til at sige om det var fordi at TextBox10 ikke eksisterede, eller om det var fordi at Id skulle ærkleres som en streng:

Dim Id As Integer = TextBox10.Text

Hvis man nu skrev

Dim Id As Integer = Integer.Parse(TextBox10.Text)

så ville jeg på ingen måde overhovedet være i tvivl om at det var fordi at programmøren rent faktisk ville have indholdet af TextBox10 over i en integer-variabel, og den eneste fejl der nu kan være er at TextBox10 ikke findes - eller at indholdet i den ikke kan konverteres til et tal.

Nå, nok nonsense... tror det er på tide jeg kommer i seng før jeg lukker mere vrøvl ud.
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 02:21 #11
Nej jeg kommer aldrig til at kode i andre sprog end VB.net - jeg har engang forsøgt at læse Java på min uddannelse, men det var overhovedet ikke noget for mig.
Er ikke speciel god til at programmere men jeg har fået mere ud af at bruge VB.net i de to sidste uger, end jeg har ved at lære Java på datamatikkeruddannelsen i 2 år.
Pludselig begynder man at kunne se resultater ved ganske lidt kode, og så synes jeg det bliver mere spændende.
Jeg vil gerne være god til at programmere, men jeg er vel nød til at starte et sted nu jeg vil lære et nyt sprog...
Avatar billede guidmaster Nybegynder
26. januar 2005 - 02:41 #12
Lad Os ikke glemme Vores venner:

Option Strict On
Option Explicit On

:)
Avatar billede jesperthomsen1980 Nybegynder
26. januar 2005 - 02:43 #13
jow lige lidt endnu ;-)
Avatar billede burningice Nybegynder
26. januar 2005 - 02:45 #14
hehe... friends, enemies... guess it depends on who you asks ;)
Avatar billede guidmaster Nybegynder
26. januar 2005 - 02:46 #15
LOL :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester