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)
-
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
2つのDataTableをJoin
Visual Basic(VBA)
-
-
4
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
5
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
6
データセットのレコード更新がしたい
Visual Basic(VBA)
-
7
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
8
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
9
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
12
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
13
DataGridViewのセル編集完了後に値を設定するには
Visual Basic(VBA)
-
14
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
15
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
16
CloseとDisposeの違い
Visual Basic(VBA)
-
17
”パラメータ値を TextBox から String に変換できません
SQL Server
-
18
DataGridViewに複数テーブルのデータをセットしたい
Visual Basic(VBA)
-
19
DataSetから、DataTableを取得したい。
C言語・C++・C#
-
20
EXISTSを使ったDELETE文
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
VBとアクセスでSQL文に変...
-
access2007 「#Deleted」
-
DataGridViewに複数テーブルの...
-
HTMLのテーブルの行数が多くな...
-
他のMDBのテーブルに追加したい
-
アクセステーブル、リンクとロ...
-
VB2008・DataGridの表示について
-
SQLを発行とは?クエリの作成と...
-
AccessからExcelへエクスポート...
-
(泣)VBscriptでinnerhtmlを使...
-
ExcelからAccessのテーブルに書...
-
VB.NET データセットとADOレコ...
-
ACCESSのテーブル名をリストに...
-
VB.NET コマンドの使い回しに問...
-
【ADO】「Execute」を使うと...
-
Accessで親テーブルと2つの明...
-
エクセルのテーブルを解除する...
-
SQL文で困っています。
-
同一セッションIDのブラウザを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
エクセルのテーブルを解除する...
-
手動または分散トランザクショ...
-
他のMDBのテーブルに追加したい
-
HTMLのテーブルの行数が多くな...
-
WORD VBA プログラム修正をお願...
-
SQLを発行とは?クエリの作成と...
-
ACCESS2010 実行時エラー 2766
-
Excel複数シートをaccessへ一括...
-
ACCESSのテーブル名をリストに...
-
アクセステーブル、リンクとロ...
-
MDBテーブルへの追加変更を教え...
-
.net 複数の主キーを設定する方法
-
Accessで宛名ラベルに同一宛先...
-
DataGridの中身をDataSetにテー...
-
COBOLのINVALID KEYが理解でき...
おすすめ情報