
VB2005、SQLServer2005環境です。
主キーの設定方法について教えて下さい。
主キーが一つの場合下記のように記述しますが、複数ある場合はどう記述すればよろしいですか?
お願いします。
strsql = "SELECT * FROM Aテーブル"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
Dim ds As DataSet = New DataSet()
dataadapter.Fill(ds, "Aテーブル")
Dim dt As New DataTable
dt = ds.Tables("Aテーブル")
'主キーの設定
dt.PrimaryKey = New DataColumn() {dt.Columns("コード1")}
No.2ベストアンサー
- 回答日時:
既に回答がついていますが補足。
要するに
dt.PrimaryKey = New DataColumn() {dt.Columns("コード1"), dt.Columns("コード2")}
とすると、コード1 + コード2 の主キーが作成されます。
表題から、主キーそのものを複数個設定したいように読めるのですが、主キーというのは、1テーブルにつき1つしか設定できません、念のため。
主キーって1テーブルにつき1つ???
いくつでも設定できると思うんですが、DATASETには一つということなんでしょうか?
主キーの作成方法はわかりました。
ありがとうございました。
No.4
- 回答日時:
「主キーが複数」という「言い方」が良くないだけかも。
「複数カラムの組で主キーを構成している」とか言った方が良いかも。
そういうことでしたらわかりました。
例えば、市町村テーブルに都道府県コード、市町村コード、市町村名のフィールドがあり、都道府県コード、市町村コードを主キーにしていたら、それは複数主キーがあるのではと思ってました。
ありがとうございました。
No.3
- 回答日時:
>いくつでも設定できると思うんですが、DATASETには一つということなんでしょうか?
逆にいくつでも設定できるという情報はどこから得ましたか?
出展を教えてください。
主キーとは、テーブル内の複数レコードの中から1つのレコードを特定できるキーで、1テーブルに1つ設定できます。
DataSet 内には複数の DataTable を格納でき、DataTable 毎に1つ主キーが設定できますから、DataSet 内には複数の主キーが存在し得るという事は言えます。
No.1
- 回答日時:
>dt.PrimaryKey = New DataColumn() {dt.Columns("コード1")}
DataColumnを配列で定義しているのだから、必要なキーの数だけ配列の中身を定義してあげるだけですよ。
この回答への補足
dt.PrimaryKey = New DataColumn() {dt.Columns("コード1")}
dt.PrimaryKey = New DataColumn() {dt.Columns("コード2")}
dt.PrimaryKey = New DataColumn() {dt.Columns("コード3")}
と書くという意味ですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) エクセルから、パワーポイントのスライドを複数作成する。 1 2022/07/08 09:40
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
このQ&Aを見た人はこんなQ&Aも見ています
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
-
4
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
5
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
6
「マスタ」と「テーブル」の違いとはなんでしょうか?
Oracle
-
7
.NET SqlDataReader のレコード有無判定
Visual Basic(VBA)
-
8
間違えて配置してしまったコントロールの削除
Visual Basic(VBA)
-
9
Spreadの選択行の取得について
Visual Basic(VBA)
-
10
DataTableから条件を満たした行を別のDatatableへコピーしたい
その他(プログラミング・Web制作)
-
11
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
SQL同時実行違反
-
エクセルのテーブルを解除する...
-
ADO.NETで CREATE TABLE [dbo]....
-
VB.NET データセットのEXCELへ出力
-
博識な方、アバターページにつ...
-
リストボックスに複数列表示し...
-
各ブラウザで表示されるテーブ...
-
SQL文で在庫推移を得る。
-
複数のデータベースを検索したい
-
VS2005でC#、データセットをMDB...
-
パイソンでのプログラミングに...
-
Excel複数シートをaccessへ一括...
-
「テーブルに主キーがありませ...
-
重複したデータを見つけたいの...
-
ExcelVBAについて
-
DAOの作成単位について
-
[C#] DataGridViewでコンボボッ...
-
ホームページ制作のSEO対策でテ...
-
ACCESS2010 実行時エラー 2766
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
手動または分散トランザクショ...
-
VBとアクセスでSQL文に変...
-
AccessからExcelへエクスポート...
-
Accessで別mdbのテーブルをコピー
-
エクセルのテーブルを解除する...
-
CSVファイルのエクスポートでソ...
-
COBOLのINVALID KEYが理解でき...
-
ExcelVBAからAccessMDB内のテー...
-
ACCESS2010 実行時エラー 2766
-
.net 複数の主キーを設定する方法
-
ExcelからAccessのテーブルに書...
-
アクセステーブル、リンクとロ...
-
Access2007でアプリケーション...
-
他のMDBのテーブルに追加したい
-
DAOの作成単位について
-
Excel複数シートをaccessへ一括...
-
[C#] DataGridViewでコンボボッ...
-
リストボックスに複数列表示し...
おすすめ情報