多分SQLデータベースについて、思い違いをしているだけです。
SQLデータベースは、集合論で表されるデータを扱っています。
1.集合には、原則データの順番はありません。
2.SELECT * FROM TABLE というクエリでは、
行方向、列方向のデータの順番は、何ら保証されません。
1億回同じでも、たまたま、同じように抽出されているだけ。
⇒実装上の都合で、そういう結果がでているだけ。
この話も、DO’s&DONT’s #13にちょろっと出てきます。
3.順番にデータを呼出す場合はどうするのか?
順番になっているデータが入っているフィールド(カラム)を、
Order句で指定します。
DO’s&DONT’s #13: 絶対にやってはいけないこと – ORDER BY が指定されていないクエリの結果が一定の順番に並んでいると仮定すること
https://blogs.msdn.microsoft.com/jpsql/2012/02/12/dosdonts-13-order-by-1/
SQLの論理形式
http://d.hatena.ne.jp/mickmack/20070822
’
是非とも読んで欲しいサイト
ミック:リレーショナル・データベースの世界
http://www.geocities.jp/mickindex/database/idx_database.html
’
Natural Key だけで行っていて、
連番が無い場合は、
Artificial Key
を追加します。
MS-SQL Server では、連番や、GUIDが簡単に作成できますが、
メジャーなSQL Serverでも、連番の取得に工夫が必要な場合があります。
’
VS20xxの型付データセットでは、
1.主キーは必要、無くても扱えない事は無いが、無いと困る事が多い。
2.MS-SQL Server のフィールドには、ID連番を含めておく。
よっぽど容量が厳しい場合を除き、ID連番を入れておく。
主キーに困ったら、ID連番とする。
3.フィールの内容は、原則Null許容にしない。
必要があって、Nullを扱う場合は、この限りでは無い。
’
DataTable / DataSet
⇒ BindingSource
⇒ BindingNavigator
⇒ DataGridView
他DataSourceを受入れる物