Toon posts:

[VB 2005] Data uit query van Dataset

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in mijn dataset-designer een tabel (BOOT) toegevoegd. Hierbij is er een tableadapter (tbaBoot) aangemaakt. Op deze tableadapter heb ik een nieuwe query toegevoegd. Deze query doet het volgende:

SELECT MAX(FILE_NUMBER) AS MAXFILENUMBER FROM BOOT

Deze query vraagt dus het hoogste file_number op.
Nu heeft de query de volgende 2 eigenschappen: FillByFileNumberMax en GetDataByFileNumberMax()

Nu werkt deze query op zich goed (wanneer ik deze test) en geeft deze ook het hoogste nummer. Het lukt mij echter niet om het hoogste nr te gebruiken in mijn code. Ik krijg dit niet opgevraagd. Ongetwijfeld doe ik iets fout, maar ik kom er niet uit. Ook niet na zoeken op het Internet.

Ik heb het volgende geprobeerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
' Dataset die is aangemaakt in de designer:
Dim dtsNvoc as new dtsNvoc
' De tableAdapter
Dim tbaBoot as new dtsNvocTableAdapters.tbaBoot()
Dim dtBoot as DataTable
Dim drBoot as DataRow

try
  tbaBoot.FillByNumberMax(dtsNvoc.boot)
  dtBoot = dtsNvoc.boot
  drBoot = dtBoot.rows(0)
  msgbox(drBoot.Items(0).toString)
catch ex as exception
  out.writeln(ex.message.tostring)
end try


Ik krijg dan de volgende melding:

Failed to enable constraints. One or more row contain values violating non-null, unique, or foreign-key constraints.

Ik heb geen idee hoe ik nu dat nummer uit de tabel in mijn code moet krijgen. IK heb al van alles geprobeerd maar het lukt me niet.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

En als je jouw foutmelding nu exact in Google zet?

Je code zal misschien goed zijn, maar je zou eens voor de gein die query in je querydesigner uit moeten voeren. (Tenzij je dit getest hebt, zoals je zegt).

Of even 'handmatig' die query op je dataset los laten. Ik heb het id dat het e.e.a. in je query, danwel database fout zit.

[ Voor 36% gewijzigd door TeeDee op 07-12-2006 12:34 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Ik heb de query echt getest (dmv Preview Data in de dataset designer) en dan werkt deze prima.

Verwijderd

Topicstarter
Ik heb het eindelijk gevonden:

Er moest nog bij:

code:
1
dtsNvoc.EnforceConstraints = false



Sorry voor de dubbelpost. Ik had op edit moeten klikken 8)7

[ Voor 26% gewijzigd door Verwijderd op 07-12-2006 13:06 ]


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

Het lijkt me een omslachtige aanpak. Zoek eens op Command.ExecuteScalar. Daarmee kun je een query uitvoeren die één waarde teruggeeft ipv een volledig recordset/tabel.

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Die enforceConstraints is eigenlijk gewoon een workaround; daarmee worden de constraints gewoon niet toegepast.
Maar voor een simpele select max, zou ik gewoon het advies van PhysicsRules volgen, en een ExecuteScalar doen.

https://fgheysels.github.io/

Pagina: 1