![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.1ベストアンサー
- 回答日時:
>データセットのレコード更新がしたい
データセット?データセットにはレコードはありません
データテーブルにレコードがあります
こんな感じ
Dataset
└─DataTable
└─DataRowCollection
新規追加ができているなら更新は簡単です
まず更新したいレコードを検索する
検索できたら、そのレコードをDataRowにて取得する
その後、対象フィールドを上書きしてからDataTableのUpdateメソッドにて更新する
[例]
Dim dRow As DataRow
'主キーにて検索(※123は検索項目値)
dRow = dTbl.Rows.Find(New Object() {123})
If Not dRow Is Nothing Then
'フィールド更新
dRow.Item("hogehoge") = "ほげほげ"
dTbl.Update()
End If
No.3
- 回答日時:
こんな感じですかね
Dim strConn As String '接続文字列
Dim oleConn As OleDbConnection 'コネクション
Dim oleDa As OleDbDataAdapter 'データアダプタ
Dim oleCb As OleDbCommandBuilder 'コマンドビルダ
Dim strSQL As String 'SQL
Dim dttable As DataTable
Dim dtrow As DataRow
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.mdb"
oleConn = New OleDbConnection(strConn)
strSQL = "SELECT * FROM " & TableName
oleDa = New OleDbDataAdapter(strSQL, oleConn)
oleCb = New OleDbCommandBuilder(oleDa)
dttable = New dttable
oleDa.Fill(dttable)
oleDa.FillSchema(dttable)
dtrow = dttable.NewRow
dtrow("日付") = "20050401"
''行を追加
dttable.Rows.Add(dtrow)
''データソースを更新
oleDa.Update(dttable)
コマンドビルダは、データアダプタの「SelectCommand」を基にして
「InsertCommand」「UpdateCommand」「DeleteCommand」に自動でSQLを設定してくれます
まだ慣れないうちは、このコマンドビルダを使用してもよいでしょうが、
慣れてきたら個別に記述するのがよろしいでしょう
HOME > VB.NET Tips HOME > コントロール > DataSet
http://vbdotnet.fc2web.com/vbnet/control/DataSet …
この回答への補足
新規作成はできました。
更新は・・・
oleCmd.CommandText = "SELECT * FROM ファイル WHERE 日付 = '20050320';"
oleDa.SelectCommand = oleCmd
oleDa.Fill(dttable)
If dttable.Rows.Count > 0 Then
dtrow.BeginEdit()
End if
dtrow.BeginEdit()でエラーがでます。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
新規作成ではdtrow = dttable.NewRowとしているので更新の場合もdtrow = ??としなければならないと思いますが・・・何をしたら良いかわかりません。
No.2
- 回答日時:
>Dataset
>└─DataTable
> └─DataRowCollection
Dataset
└─DataTableCollection
└─DataRowCollection
間違えました orz
この回答への補足
新規追加できてると思ったらできていなかったです・・・。データソースを更新する時に、
更新には、新しい行を含む DataRow コレクションが渡されたとき、有効な InsertCommand が必要です。
のエラーが出ます。
追加したい項目の書き方は・・・
dtrow = dttable.NewRow
dtrow("日付") = "20050401"
''行を追加
dttable.Rows.Add(dtrow)
''データソースを更新
oleDa.Update(dttable)
ではダメですか?
INSERT文でするのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel グラフの軸に「表示単位の変更」の要領でテキストを追加したい 1 2022/06/08 16:27
- 北アメリカ パスポートの有効期限が切れる前に、更新に行ってきたのですがその後すぐに入籍することが決まり、名前の変 1 2023/05/15 19:02
- ドメイン・サーバー・クラウドサービス 独自ドメインでのNSレコード設定 1 2023/07/12 18:36
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
- メルカリ メルカリでアドレスと電話番号変更したいのですが、 追加認証が必要ですと書かれてできませんでした 追加 1 2022/09/13 13:19
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- iPhone(アイフォーン) iPhone/iPadの標準メールアプリでのアカウント新規登録について pop/imap選択 1 2023/06/22 08:00
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
-
4
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
5
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
6
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
7
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
8
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
9
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
10
変数の参照でエラーが出てしまいます。(VB.NET)
Visual Basic(VBA)
-
11
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
12
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
13
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
14
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
15
DataSetから、DataTableを取得したい。
C言語・C++・C#
-
16
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
17
.net 複数の主キーを設定する方法
Visual Basic(VBA)
-
18
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
19
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
20
1テーブル&複数レコードの更新に対して1度のupdate文での処理方法
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームの移動でのイベント
-
ADO VBA 実行時エラー3021
-
レコードセット(ADO.Recordset)...
-
DataGridViewの内容をDBに反映...
-
VB.netの戻り値が返ってこない
-
レコード長を数えてくれる関数
-
Access を×ボタンで閉じ...
-
VB6.0のIsNull関数に相当するもの
-
データベースの内容を変数に入...
-
[VBA] ADOの Clone と AddNew
-
レコードが存在しなかった場合
-
ヘッダレコードとトレーラレコ...
-
Access でレコードセレクタが押...
-
ファイル書込みで一行もしくは...
-
【ExcelVBA】Powerクエリーでい...
-
差し込み印刷のレコード数について
-
DataGridViewの、選択されてい...
-
Line Inputで文字化け(助けて...
-
ADOでエクセルからアクセス...
-
Oracleでの文字列連結サイズの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
レコードが存在しなかった場合
-
アクセスでレポートの1印刷内...
-
JSPのNULLレコード表示について...
-
カレントレコードが無い事を判...
-
DataGridViewの、選択されてい...
-
差し込み印刷のレコード数について
-
ACCESSで大量の更新を行うと「...
-
DataGridViewの内容をDBに反映...
-
Access でレコードセレクタが押...
-
固有レコード識別子の選択とは
-
レコードセット(ADO.Recordset)...
-
Access を×ボタンで閉じ...
-
DataGridViewにてセル以外をク...
-
ヘッダレコードとトレーラレコ...
-
ワードの差込印刷で教えて下さ...
-
サブレンジ分割されたNDB(富士...
-
データセットのレコード更新が...
-
[VBA] ADOの Clone と AddNew
おすすめ情報