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.3
- 回答日時:
>いくつでも設定できると思うんですが、DATASETには一つということなんでしょうか?
逆にいくつでも設定できるという情報はどこから得ましたか?
出展を教えてください。
主キーとは、テーブル内の複数レコードの中から1つのレコードを特定できるキーで、1テーブルに1つ設定できます。
DataSet 内には複数の DataTable を格納でき、DataTable 毎に1つ主キーが設定できますから、DataSet 内には複数の主キーが存在し得るという事は言えます。
No.2ベストアンサー
- 回答日時:
既に回答がついていますが補足。
要するに
dt.PrimaryKey = New DataColumn() {dt.Columns("コード1"), dt.Columns("コード2")}
とすると、コード1 + コード2 の主キーが作成されます。
表題から、主キーそのものを複数個設定したいように読めるのですが、主キーというのは、1テーブルにつき1つしか設定できません、念のため。
主キーって1テーブルにつき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)
-
2つのDataTableをJoin
Visual Basic(VBA)
-
DataSetから、DataTableを取得したい。
C言語・C++・C#
-
-
4
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
5
データセットのレコード更新がしたい
Visual Basic(VBA)
-
6
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
7
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
8
textboxユーザーコントロールのコピー&ペースト制御
Visual Basic(VBA)
-
9
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
10
DataGridViewに複数テーブルのデータをセットしたい
Visual Basic(VBA)
-
11
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
12
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
13
html上で、バッチやexeファイルの起動をしたい
ホームページ作成・プログラミング
-
14
実数の整数部,小数部の取得
Visual Basic(VBA)
-
15
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
16
CloseとDisposeの違い
Visual Basic(VBA)
-
17
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
18
日本語のプロポーショナルフォントで、一番幅が広い文字は何ですか?
その他(パソコン・スマホ・電化製品)
-
19
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
20
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WORD VBA プログラム修正をお願...
-
ExcelVBAからAccessMDB内のテー...
-
ExcelからAccessのテーブルに書...
-
ワークテーブルの作成について
-
(泣)VBscriptでinnerhtmlを使...
-
エクセルのテーブルを解除する...
-
C# OleDbDataAdapter.Fillメソ...
-
『列名 '担当者CD' があいま...
-
Access2003VBA リンクテーブル...
-
DataGridViewに複数テーブルの...
-
COBOLのINVALID KEYが理解でき...
-
SQL文の最後に「;」はいら...
-
Accessで別mdbのテーブルをコピー
-
vb ado → vb2005 ado.net変換
-
他のMDBのテーブルに追加したい
-
MDBテーブルへの追加変更を教え...
-
VBでコンボボックスとテキスト...
-
ACCESS2010 実行時エラー 2766
-
CSVファイルのエクスポートでソ...
-
HTMLのテーブルの行数が多くな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
他のMDBのテーブルに追加したい
-
SQLを発行とは?クエリの作成と...
-
手動または分散トランザクショ...
-
HTMLのテーブルの行数が多くな...
-
エクセルのテーブルを解除する...
-
ExcelVBAからAccessMDB内のテー...
-
Excel複数シートをaccessへ一括...
-
DataGridの中身をDataSetにテー...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
.net 複数の主キーを設定する方法
-
『列名 '担当者CD' があいま...
-
COBOLのINVALID KEYが理解でき...
-
アクセステーブル、リンクとロ...
-
ACCESSのテーブル名をリストに...
-
MDBテーブルへの追加変更を教え...
-
【ADO】「Execute」を使うと...
-
ACCESS2010 実行時エラー 2766
おすすめ情報