Vra

Ek is net vuil in Winforms, en ek het ontdek, deur 'n pragtige handleiding, die magie van sleep 'n databasistabel op die design view van my hoof vorm. So, al wat mooi is, het ek my DataGridView met al die kolomme pragtig verteenwoordig.

MAAR ...

As ek my aansoek teen hierdie merk hardloop nuwe, leë Sdf (leë spaar vir die twee tafels wat ek gemaak het, wat hulself leë is), kry ek 'n -1 in die kolom wat ooreenstem met my primêre sleutel / identiteit kolom wanneer ek probeer om daardie eerste rekord te skep.

Enige idee hoekom dit dalk gebeur? As dit help, die kolom is 'n int.

Was dit nuttig?

Oplossing

Aangesien dit 'n identiteit kolom en jy het dit nog nie gered om die databasis is dit -1. Ek hier in die veronderstelling dat dit voordat jy die tafel terug te slaan na die databasis, korrek? Wat jy nodig het om die insetsel te voer voor dat waarde korrek sal ingestel word.

Ander wenke

@Brian -1 is 'n goeie keuse vir die verstek waarde aangesien daar geen "regte" rye is geneig om identiteite minder as nul. As dit versuim om 0 of 1 dan sal daar 'n kans dat dit sal bots met 'n bestaande ry, wat veroorsaak dat 'n primêre sleutel skending wees.

Vir aansoeke wat op die regte pad te bly en verskeie rye te skep voordat jy dit stoor, 'n algemene praktyk is om voort te gaan terugtel (-2, -3, -4) vir identiteit elke nuwe ry nie. Dan wanneer hulle gered is, kan die bediener vervang hulle met die ware "volgende" waarde van die tafel.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top