[vb.net] update grid geen select command

Pagina: 1
Acties:

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 21-05 08:21
Ik doe mijn grid editten, en daarna updaten via een button.
Ik heb 2 grids in mijn tabbed-form.
De eerste grid werkt zonder problemen.
De tweede die geeft een foutmelding aan dat er geen select-command is.

Ik heb een beetje zitten debuggen, want de update procedure geeft Null-reference aan.
Toen ben ik mijn update commando gaan bekijken die word aangemaakt met een sqlcommandbuilder.

Ik zie absoluut geen verschillen tussen de twee grids.
Ik vermoed dat ik iets over het hoofd zie, maar na 5 uur "etteren" en zoeken kom ik er niet meer uit.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
sub bindgrid_overwerk
        mijndatatable = New DataTable("t_overwerk")
        Dim myDataColumn As DataColumn
        Dim myDataRow As DataRow

        myDataColumn = New DataColumn
        myDataColumn.DataType = System.Type.GetType("System.Int32")
        myDataColumn.ColumnName = "overwerk_id"
        myDataColumn.Unique = True
        mijndatatable.Columns.Add(myDataColumn)

'beetje geknipt in de text.
'er werden nog meer kolommen toegvoegd.

        mijndataset = New DataSet
        mijndataset.Tables.Add(mijndatatable)

        connect.connect()
        Connectie.Open()

        sqlstringa = "select * from t_overwerk where userid ='" & loginnaam & "' _&
        order by datum_overwerk"
        Dim mijncommand = New SqlDataAdapter(sqlstringa, Connectie)
        mijncommand.Fill(mijndataset, "t_overwerk")
        Connectie.Close()
        UltraGrid2.DataSource = mijndataset
end sub

sub update_grid
        'bugje in grid. Eerst de active row weghalen, anders
        'blijft de grid in edit-mode staan.
        
        Connectie.Open()
        UltraGrid2.ActiveRow = Nothing
        UltraGrid2.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode)
        UltraGrid2.UpdateData()
        Dim builda As New SqlClient.SqlCommandBuilder(mijncommand)
****    mijncommand.DeleteCommand = builda.GetDeleteCommand
        mijncommand.UpdateCommand = builda.GetUpdateCommand
        mijncommand.InsertCommand = builda.GetInsertCommand

        Debug.WriteLine(mijncommand.UpdateCommand.CommandText)
        Debug.WriteLine(mijncommand.DeleteCommand.CommandText)
        Debug.WriteLine(mijncommand.InsertCommand.CommandText)
        mijncommand.Update(mijndataset, "t_overwerk")
                Connectie.Close()
end sub

Bij de lijn met de ** loopt mijn progr. vast met de melding:
code:
1
2
3
An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll

Additional information: De DataAdapter.SelectCommand-eigenschap moet worden geïnitialiseerd.

The best thing about UDP jokes is that I don't care if you get them or not.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 21-05 08:21
:) :) Opgelost !

Het heeft mij ongeveer 3 jaar van mijn leven gekost om er achter te komen dat regel 23 niet goed is.
Deze variabele was al een publieke variabele.

The best thing about UDP jokes is that I don't care if you get them or not.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Hmmmm.. Als je toch bezig bent, kijk dan gelijk eens het hoofdstuk over Parametrized queries eens door.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 21-05 08:21
gorgi_19 schreef op 15 maart 2004 @ 16:05:
Hmmmm.. Als je toch bezig bent, kijk dan gelijk eens het hoofdstuk over Parametrized queries eens door.
Die gebruik ik altijd.
Maar de sqlcommandbuilder genereert deze zelf.

The best thing about UDP jokes is that I don't care if you get them or not.


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Lijn 21 ziet er anders verre van een parametrized query uit hoor.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 15 maart 2004 @ 16:28:
Lijn 21 ziet er anders verre van een parametrized query uit hoor.
* gorgi_19 gaat trouwens maar niet beginnen over scheiding van datalaag en presentatielaag

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 21-05 08:21
whoami schreef op 15 maart 2004 @ 16:28:
Lijn 21 ziet er anders verre van een parametrized query uit hoor.
:X
Dat klopt.
Maar dat is de query die ik gebruik.
En dan vind ik het bij zo'n recht-toe-recht-aan query sneller dan parametrized.
Om je gerust te stellen...
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    Dim insertcmd As String = "INSERT INTO t_registratie (datum_invoer,tijd_invoer,achternaam, voornaam, loginnaam, datum_registratie,activiteit,aantal_uur, geaccepteerd) Values (@datum_invoer, @tijd_invoer,@achternaam,@voornaam,@loginnaam, @datum_registratie,@activiteit,@aantal_uur, @geaccepteerd)"

        mycommand = New SqlCommand(insertcmd, Connectie)

        mycommand.Parameters.Add(New SqlParameter("@datum_invoer", SqlDbType.DateTime))
        mycommand.Parameters("@datum_invoer").Value = Today.Now

        mycommand.Parameters.Add(New SqlParameter("@tijd_invoer", SqlDbType.DateTime))
        mycommand.Parameters("@tijd_invoer").Value = TimeOfDay.Now

        mycommand.Parameters.Add(New SqlParameter("@achternaam", SqlDbType.VarChar))
        mycommand.Parameters("@achternaam").Value = achternaam

        mycommand.Parameters.Add(New SqlParameter("@voornaam", SqlDbType.VarChar))
        mycommand.Parameters("@voornaam").Value = voornaam

        mycommand.Parameters.Add(New SqlParameter("@loginnaam", SqlDbType.VarChar))
        mycommand.Parameters("@loginnaam").Value = loginnaam

        mycommand.Parameters.Add(New SqlParameter("@datum_registratie", SqlDbType.DateTime))
        mycommand.Parameters("@datum_registratie").Value = DateTimePicker1.Text.ToString

        mycommand.Parameters.Add(New SqlParameter("@activiteit", SqlDbType.VarChar))
        mycommand.Parameters("@activiteit").Value = ComboBox1.SelectedItem.ToString

        mycommand.Parameters.Add(New SqlParameter("@aantal_uur", SqlDbType.Money))
        mycommand.Parameters("@aantal_uur").Value = ComboBox2.SelectedItem.ToString

        mycommand.Parameters.Add(New SqlParameter("@geaccepteerd", SqlDbType.Bit))
        mycommand.Parameters("@geaccepteerd").Value = CBool("1")

Beetje layout *&*&%$
;)

The best thing about UDP jokes is that I don't care if you get them or not.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 21-05 08:21
gorgi_19 schreef op 15 maart 2004 @ 16:31:
[...]

* gorgi_19 gaat trouwens maar niet beginnen over scheiding van datalaag en presentatielaag
Graag wel, want ik doe nog maar 3 maanden "hobby-programmeren".
Ik weet dat er voldoende documentatie is, maar je moet toch ergens beginnen.

Heb door bovenstaand probleem dus ook leren debuggen.

Stapje voor stapje leer ik weer wat bij.

The best thing about UDP jokes is that I don't care if you get them or not.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

En dan vind ik het bij zo'n recht-toe-recht-aan query sneller dan parametrized.
Waarbij een parametrized query sneller is in gebruik en veiliger is dan query opbouwen via een string.
Graag wel, want ik doe nog maar 3 maanden "hobby-programmeren".
Zoek eens op N-Tier

[ Voor 23% gewijzigd door gorgi_19 op 15-03-2004 16:34 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Remc0 schreef op 15 maart 2004 @ 16:31:
[...]

:X
Dat klopt.
Maar dat is de query die ik gebruik.
En dan vind ik het bij zo'n recht-toe-recht-aan query sneller dan parametrized.
Veilig is ie anders niet.

Geef eens dit in als loginnaam:

code:
1
'';DROP TABLE eentabelnaam;--


idd gorgi :P, ik ging eerst dit doen, vandaar:
code:
1
'';DROP DATABASE databasenaam;--

[ Voor 16% gewijzigd door whoami op 15-03-2004 18:57 ]

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Remc0 schreef op 15 maart 2004 @ 16:32:
[...]

Graag wel, want ik doe nog maar 3 maanden "hobby-programmeren".
Ik weet dat er voldoende documentatie is, maar je moet toch ergens beginnen.
N-tier development part I
N-tier development part II

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Ik vind dat plaatje in het eerste artikel een beetje dubieus. Deze claimt dat de PL alleen plaatsvindt op de client pc. Ik zou eigenlijk ook een stukje van de PL op de server plaatsen; immers usercontrols horen ook gedeeltelijk bij de PL.
Deze zitten vast aan een weergave methodiek; deze zijn immers niet bruikbaar in Winforms.

De scheiding in het geval van een datalayer hebben ze dan wel weer netjes verdeeld over een databaseserver en een webserver; als je geen sp's gebruikt, zou dat betekenen dat je datalayer volledig losgekoppeld is van je databaseserver (waar ik me op zich wel in kan vinden)

[ Voor 31% gewijzigd door gorgi_19 op 15-03-2004 16:49 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
gorgi_19 schreef op 15 maart 2004 @ 16:47:
[...]

Ik vind dat plaatje in het eerste artikel een beetje dubieus. Deze claimt dat de PL alleen plaatsvindt op de client pc. Ik zou eigenlijk ook een stukje van de PL op de server plaatsen; immers usercontrols horen ook gedeeltelijk bij de PL.
Deze zitten vast aan een weergave methodiek; deze zijn immers niet bruikbaar in Winforms.
Mjah, ik denk dat de auteur vooral van winforms uitging.

https://fgheysels.github.io/

Pagina: 1