• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ADO.NETのDataSetのコピー)

ADO.NETのDataSetを使用してsdfファイルからmdbファイルにテーブルを移行する方法

このQ&Aのポイント
  • ADO.NETのDataSetを使用してsdfファイルからmdbファイルにテーブルを移行する方法を試していますが、うまく移行できません。
  • sdfファイルとmdbファイルのテーブルのカラム構造は同じであり、mdbファイルには空のテーブルが用意されています。
  • 移行のためにDataSetをコピーしようとしましたが、何が間違っているのかわかりません。助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

DataRowのRowStateがModifiedになっているから。 DataRow.SetAdd()でRowStateをAddedに変える。

nekoma36
質問者

お礼

todo36さん、ありがとうございました。 基本的なことでした。 とりあえず、以下のようなコードで実行できています。 またよろしくお願いします。 <前略> ds2 = ds1.Copy For Each myROW As DataRow In ds2.Tables("TBL1").Rows myROW.AcceptChanges() myROW.SetAdded() Next Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(adapter2) adapter2.Update(ds2, "TBL1")

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DataSetについて

    下記のようなDataSetを使用した処理質問致します。 TableAdapterのデザイン時にてSELECTCommandで SELECT 'AA' AS 名前 FROM M_マスタ と、記述してDataGridView1に反映しようとしても実際にテーブルに入っているデータがそのまま表示されてしまいます。 このように固定の値を取得する方法はどのようにしたらよろしいのでしょうか?そもそもできないのでしょうか? Dim ds As New DataSet1 Dim Ta As New DataSet1TableAdapters.M_マスタTableAdapter 'テーブルアダプタを利用してデータを読み込む Ta.Fill(ds.M_マスタ) Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "M_マスタ"

  • .net 複数の主キーを設定する方法

    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")}

  • ADO.NETのFillメソッドのパラメータ

    テーブル名:項目名 海:気温、水温、大きさ(0:大きい、1:小さい) 教科書:科目、値段 上記のようなテーブルがあり、以下のようなSelect文によりデータを データセットに取得したいのですが、 コンパイルは通り、実行するとFillメソッドでエラーになります。 try~catchをしてエラーの内容を見てみると「FROM句の構文エラー」と出ています。 Fillメソッドの2つめのパラメータにどちらのテーブル名を入れても、 同じエラーになります。 複数のSelect文をAdapterに設定した場合、 2つ目のパラメータは一体なんなのでしょうか。 Adapterを2つに分ける方法ではなくこの方法でどうすればいいのか、 教えてください。よろしくお願いいたします。 初心者ですので、簡単に教えていただけるとありがたいです。 --------------------------------------------------Dim oleCn As OleDb.OleDbConnection = New OleDb.OleDbConnection Dim dataSet = New DataSet oleCn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;"~ Dim oDataAdapter As New OleDb.OleDbDataAdapter("SELECT 科目 FROM 教科書" + _ "SELECT 水温 FROM 海 WHERE (大きさ = 0)", oleCn) oDataAdapter.Fill(dataSet)

  • 【VB】データグリッドに読み込んだテーブルの変更を元のデータベースに反映させたい

    VB歴6ヶ月です。 VBのバージョンは2005です。 mdbから読み込んだデータベースをデータグリッドビューコントロールで表示しました。 CNには接続パスが入っていてmdbとの接続は確立しています。 データグリッドビューコントロールのオブジェクト名はDGVです。 読み込むテーブル名はt社員マスターです。 Private sub メンテナンス() Dim DS As DataSet = New DataSet("社員マスター") Dim SQL As String = "SELECT * FROM t社員マスター" Dim DA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(SQL, CN) DA.Fill(DS, "社員マスター") Dim DV As DataView = New DataView(DS.Tables("社員マスター")) DGV.DataSource = DV End sub これでグリッドに読み込ますことはできたのですが、 読み込んだデータをグリッド上で変更したら元のデータベースにも反映したいのですが やり方がわかりません >< 具体的なコード、やり方を教えていただけたらありがたいです。

  • VB2005とADO.NETを使った時のSELECT文の書き方で分らないことがあり困っています

    VB2005とADO.NETを本で勉強中の超初心者です。本のサンプルを参考に以下のようなコ-ドを作って動作させるとDataGridViewにDBの内容が正しく表示されますが、 Dim cn As New OleDbConnection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\VB2005\Order.mdb" Dim da As OleDbDataAdapter da = New OleDbDataAdapter("SELECT * FROM Goods;", cn) Dim ds As New DataSet da.Fill(ds, "Goods") DataGridView1.DataSource = ds.Tables("Good 特定のコ-ドをFormのテキストボックスから入力して、表示させたいと思い"SELECT * FROM Goods WHERE GoodsId = TextBox1.Text;"とするとエラ-になってしまいました。ちなみに"SELECT * FROM Goods WHERE GoodsId = 'A0001';として動作させるとA0001だけを表示することはできました。 どのようにすればテキストボックスや変数で、表示したいコ-ドを指定したら良いか教えて頂けないでしょうか。

  • ADO.NETのOleDbAdapterに設定するSelect文

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1345496に関連して・・・ テーブル名:項目名 部屋:科目、部屋 教科書:科目、値段 上記のようなテーブルがあり、以下のようなSelect文によりデータを データセットに取得したいのですが、 コンパイルは通り、実行するとFillメソッドでエラーになります。 try~catchをしてエラーの内容を見てみると「FROM句の構文エラー」と出ています。 Fillメソッドの2つめのパラメータにどちらのテーブル名を入れても、 同じエラーになります。 UNION句でつないだSelect文をAdapterに設定した場合、 2つ目のパラメータは一体なんなのでしょうか。 Fillメソッドのパラメータがおかしいのでなければ、 SELECT文のどこがおかしいでしょうか。 教えてください。よろしくお願いいたします。 ---------------------------------------------------------------- Dim oleCn As OleDb.OleDbConnection = New OleDb.OleDbConnection Dim dataSet = New DataSet oleCn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;"~ Dim oDataAdapter As New OleDb.OleDbDataAdapter("SELECT 科目 FROM 部屋" & _ "UNION SELECT 科目 FROM 教科書 WHERE (値段 > 1000)", oleCn) oDataAdapter.Fill(dataSet)

  • DataSet ds = new DataSet();

    DataSet ds = new DataSet(); System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(); da.SelectCommand = cmd; da.Fill(ds); でデータを格納したときに、 重複データを省きたいのですが可能でしょうか? DataReader ならひとつひとつ格納していくので、 重複データを省くことができるのですが。

  • DataSetの使い方が分らず困っています

    VB2008とADO.NETを勉強中の初心者です。 DataSetに読み込んであるデ-タをクリアしたいと思ってるのですが、方法が分らず困っています。 最終目標のプログラムでは、製品のコ-ドを指定して、その製品を造るために必要な部品・材料を買うプログラムを作りたいと思っています。 そのための勉強として、Form1のTextBoxから製品コ-ドを入力して、"Seihinkousei"に登録してある部品・材料を読み込むプログラムを作成しました。 Dim cn As New OleDbConnection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\MAPICAS\MAPICAS-S.mdb" Dim da As OleDbDataAdapter 'DataAdapterの作成 da = New OleDbDataAdapter("SELECT * FROM Seihinkousei WHERE Se_Hinban = '" & TextBox1.Text & "'", cn) da.Fill(DataSet1, "Seihinkousei") DataGridView1.DataSource = DataSet1.Tables("Seihinkousei") 複数回、TextBoxから製品コ-ドを入力してDataGridViewに表示してみると、いままで読み込んでデ-タが、その都度すべて表示されてしまいます。 最終目標のプログラムでは、読込の処理をFunctionにして、どのPrivate SubからでもDataSetの内容を参照したいと思っています。 そのため、DataSetを使い、且つ前回読み込んで内容はクリアして、その都度指定した製品の部品・材料だけの情報にしたいと思っています。 ご教授よろしくお願いします。

  • コンボボックスのSelectedItemの使い方

    エリアテーブルを取得し コンボボックスの見える値は「値」にして コンボボックスを取得するときには「コード」を 取れるようにしたいと思っています。 どのように書くと取得できるのでしょうか? バインドするやり方が分からなくて 下記のようになっています。 Dim strSql As String Dim dr As SqlClient.SqlDataReader = Nothing Dim daAdp As New SqlClient.SqlDataAdapter Dim cmd As New SqlClient.SqlCommand Dim ds As DataSet = New DataSet() mConn = New SqlConnection 'DBのオープン  Conn.DbConnect()   Dim dbCmd As SqlCommand = Nothing 'SQL発行 strSQL = "SELECT コード,値 " strSQL = strSQL & "FROM エリア" Conn.ExecSqlSelect(strSql, dr)   ComboBox1.Items.Clear() Do While dr.Read ComboBox1.Items.Add(dr.GetString(1)) ComboBox1.SelectedItem = dr.GetString(0) Loop

  • ADOでRecordsetオブジェクトをレコードソースに設定したい

    Access2000を使っています。リンクテーブルを使わずに、ODBCで繋いだDBのテーブルをフォームのレコードソースにセットしたいのですが、可能でしょうか。 宜しくお願いします。 Private Sub FormNoKansu() Dim cn as New ADODB.Connection Dim rs as New ADODB.Recordset Dim strSql as String 'ODBCでサーバーに接続 cn.ConnectionString = "ODBCでMySQLに..." ... strSql = "SELECT * FROM ..." rs.Open strSql, cn 'ここに[rs]を入れられたらと思っています Me.Recordset = "" End Sub

このQ&Aのポイント
  • 左右独立ワイヤレスイヤホンの右耳の電源が入らない問題について
  • ランプが点灯せず音が聞こえない右耳についての対処方法
  • ソースネクスト株式会社の製品における左右独立ワイヤレスイヤホンの問題
回答を見る