• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# mdb レコード追加)

C# mdb レコード追加についての質問

このQ&Aのポイント
  • C#を使用してmdbにレコードを追加する方法について、エラーが発生しています。
  • 質問者はC#の超初心者であり、データテーブルまでは追加できるが、updateメソッドでエラーが発生していると述べています。
  • アダプターオブジェクトを使用しており、データセット.xsd内に作成されていますが、メソッドの引数の指定方法に誤りがあるようです。

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

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

xsdを作成しているということで、型つきのデータアダプターなのかなと思っておりますが。 まず、MSDN Libraryを見ていただくと、Updateメソッドで、あるDataTableの更新をしたい場合は、 [データアダプター].Update(DataSet.DataTble); という感じで指定するとうまくいくかと思います。 がんばってください。

teng046
質問者

お礼

ありがとうございます。 がんばってみます。

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

関連するQ&A

  • mdbのテーブルを別のmdbのテーブルに追加

    2種類のMDBがあり 一つは 毎日の入力にて使用、もう一つは 累積として使用している。 それぞれに 同一デザインのテーブルがあります。 毎日の入力用のMDB内ののテーブルのデータをすべて 二つ目のMDBのテーブルに 追加したいのですが 一件読み込んで 一件書き込むなどと プログラムしていましたが 毎日の入力用のMDBが たくさんになったため 処理が遅くてたいへんです。 なにか 簡単に かつ 高速にすることは可能でしょうか? 開発環境は VB6 SP6 WindowsXP ADOを使用しています。 よろしくお願いします。

  • 他のMDBのテーブルに追加したい

    Access2010のADOについてご質問します。 以下のようにして、データを追加しています。 Dim SQL As String Dim cn As ADODB.Connection Set cn = CurrentProject.Connection ' SQL = "INSERT INTO テーブルA ( 勤務時間 ) " SQL = SQL & "SELECT [テーブルA ].[勤務時間] " SQL = SQL & "FROM テーブルA ; " cn.Execute SQL ご質問したいのは、 当MDB(PC)から社内サーバーにあるMDBのテーブルに追加したいのです。 違うテーブル名でしたら、リンクをすれば済む話とは思いますが 同じテーブル名の「テーブルA」なので どのようにすればいいのか困っています。 ご指導の程をよろしくお願いします。

  • いちばん最後のレコードに値の追加ができません。

    ACCESSで、何週間も原因がどうしても解らず困っております。お助けください。 ある条件を基に複数のテーブルを参照しデータ加工を行った後に、レポート作成用テーブルのいちばん最後のレコードに必ず追加登録をしたいのですが、いちばん最後のレコードに登録できたり、既に登録されているレコードの間に割り込んで登録されたり処理の検証を行うたびに結果が異なるのです。 何度もデバッグを行いましたが、レポート作成用テーブルへUPDATEするまでの処理及びデータには間違いありません。レポート作成用テーブルで勝手にデータ入れ替わっているとしか思えないのですが・・・・・・ 最初はRecordsetオブジェクトはテーブルタイプを指定し、Addnew及びUpdateメソッドで追加登録していましたが、思うように動作しないためRecordsetオブジェクトをダイナセットタイプに変更してみましたが処理結果は変わりません。 ※RecordsetオブジェクトでIndexプロパティの設定はありません 参考書にダイナセットタイプのRecordsetオブジェクトは、設定されている並べ替え規則にかかわらず、必ずいちばん最後のレコードに追加されると記載されていたので試してみましたが駄目でした。 おおざっぱな説明で現状を理解して頂けるかわかりませんが宜しくお願いいたします。

  • LINK : fatal error LNK1104: ファイル 'C:\DOCUME~1\鈴木' を開くことができません。

    データセットをしようとすると XSD を使用して DataSet クラスを作成しています... fatal error LNK1104: ファイル 'C:\DOCUME~1\鈴木'を開くことができません。 というようなエラーが出てしまいます。 どのようにすればエラーがなくなるのか教えてください。

  • エクセルからアクセスへADO 「_be.mdb」に追加するべき?

    リンクテーブルでtest.mdbとtest_be.mdbに分割した場合 エクセルからアクセスへADOでテ゛ータを追加する場合、 「test.mdb」と「test_be.mdb」のどちらに追加すればいいのでしょうか? 「test_be.mdb」はリンクテーブルとして「test.mdb」のテーブルのみ保存されています。

  • Access2000の追加クエリ(INSERT句)について

    Access2000で作成したmdbファイルAから他のmdbファイルBにあるテーブルデータを取得して、mdbファイルAのテーブルにこのデータを追加する構文として、 DoCmd.RunSQL "INSERT INTO テーブル1 SELECT * FROM テーブル2 IN ""Z:\mdbファイルB.mdb""", -1 を記述して使用していますが、mdbファイルB.mdbにデータベースパスワードを設定すると、「実行時エラー・パスワードが正しくありません」のエラーが発生します。 接続先のmdbファイルBにパスワードを設定した状態で使用したいのですが、何かよい解決策はないでしょうか? なお、上記のとおりパスワードを設定した状態でテーブルにデータを追加できさえすればどんな方法でもかまいませんのでご教授願えないでしょうか。 よろしくお願いします。

  • リモートのmdbファイルのテーブルを追加したりできるツール

    リモートのmdbファイルのテーブルを追加したりできるツールをご存じありませんか? テーブルの作成、削除、フィールドの追加、削除、更新などがリモートのサーバー上のmdbに対してできると便利なのですが。

  • PEAR・MDB2のモジュールロードについて

    使用環境ですが、php5.3.1 MDB2において、「createTable」や「executeMultiple」などは、モジュールのロードをしなくてはいけません。 そのロード方法をサイトで見たのですが上手く行かなかったので、質問させていただきました。 まず、ロード方法の3つのパターンなのですが サイトURL ttp://pear.plus-server.net/package.database.mdb2.intro-module.html ttp://pear.plus-server.net/package.database.mdb2.intro-manager-module.html ・1つめのパターン PHP4と5ともに使える ーーー // Manager モジュールを読み込みます $mdb2->loadModule('Manager'); // PHP4 および PHP5 $mdb2->manager->createTable( 'test', $definition, $table_options ); ーーー ・2つめのパターン 'modules' オプションで PHP5 のオーバーロードを利用する ーーー // モジュール名の短縮形を、メソッド名の先頭に付加します。 // そして元のメソッド名の最初の文字を大文字にします。 $tables = $mdb2->mgCreateTable( 'test', $definition, $table_options ); ーーー ・3つ目のパターン PHP5 のオーバーロードを使用して、読み込んだモジュールのメソッドをコールする ーーー $mdb2->loadModule('Manager'); // 注意: PHP5 では __autoload() が使用できるので、 // 上の行は次のように書くこともできます。 $tables = $mdb2->createTable( 'test', $definition, $table_options ); ーーー パターン2の方法で、テーブルを作成し、データを挿入するプログラムを書いたのですがエラーが出ます。以下ソース ーーー <?php require_once("./test/root_config.php"); require_once("MDB2.php"); $mdb2 =& MDB2::factory( $DSN ); if( MDB2::isError( $mdb2 ) ){ die( $mdb2->getMessage() ); } $definition = array( 'name' => array( 'type' => 'text', 'length' => 10 ), 'tosi' => array( 'type' => 'integer' ) ); $mdb2->mgCreateTable( 'test', $definition ); $alldata = array(array('one',1), array('two', 2), array('three', 3), array('four', 4)); $sth = $mdb2->prepare('INSERT INTO test VALUES (?, ? )'); $mdb2->mgExecuteMultiple($sth, $alldata); ?> ーーー 実行すると Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'MDB2_Driver_Manager_mysql' does not have a method 'executeMultiple' in C:\xampplite\php\PEAR\MDB2.php on line 1934 と出ます。 ちなみに、この時点ではテーブルは正常に作成できていてデータの挿入が上手く行きませんでした。 また、パターン1の方法で「createTable」や「executeMultiple」を記述すると上手く行きました。 質問1 上記ソースを、パターン2の方法で記述するにはどのように直せばいいでしょうか? 質問2 php4を使う予定はないのですが、モジュールの呼び出し方として、プログラム的に綺麗な書き方はパターン1なのでしょうか? 上記以外に、ソース的に綺麗な呼び出し方があれば教えてください。 長くなりましたが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • [VB2008] datatableを使ったDB(mdb)更新でのバグ

    VB2008(Express Edition)で、アクセス(mdb)のデータベース更新をしていたのですが、 テーブルのフィールド名が「No」だとデータベース更新の際、エラー終了(インサート文~というエラー)してしまいます。 http://homepage1.nifty.com/rucio/main/VBdotNet/Database/Database4.htm 上記のサイトの一番下にある方法で、Adapter.Fill(Table)で、読み込んだデータテーブルにレコードを追加し、Adapter.Update(Table)で、データベースを更新しています。 フィールド名が例えば「製造No」とかだとエラーも無いのですが、「NO or no or No or oN」だとエラー終了するみたいです。全角はまだ試してないです。 これって、何のバグでしょうか?分かる方、どうか宜しくお願いします。

  • Accessデータを違うmdbにコピーしたい

    VB2005で、mdbをデータベースにして開発しています。 aaa.mdbのテーブル1のデータをbbb.mdbのテーブル1に読み込ませたいと思っています。 bbb.mdbのテーブル1は、aaa.mdbのテーブル1よりフィールド数が多く、 該当する列にデータを読み込ませたいと思っています。 今まで、バックアップはaaa.mdbを丸ごとコピーして圧縮ファイルにしていました。復元の時は、解凍して上書きする、という手法をとっていました。 しかし、今回どうしてもテーブル1に列を追加しなくてはならず、aaa.mdbのバックアップデータをbbb.mdbに読み込ませて、VB2005のフォームに表示したいと考えております。 以上のような操作は可能でしょうか?可能でしたらその手法を是非教えてください。 また、データベースアプリを作成する上でアプリ完成後に、カスタマイズや計算方法の変更により列の追加が必要になる、いうことはまずいことでしょうか?前もって考えてフィールドを持っておくべきなのでしょうか?経験がないため、わかりません。この点についてもアドバイスがありましたら宜しくお願い致します。