C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.13040 の関連記事表示

<< 0 >>
■13040  Re[4]: エクセルデータとDataSetをマージする
□投稿者/ まぐねしうむ -(2008/01/23(Wed) 20:13:18)
    > getUserDbDataが無いので不明な部分がありますが、
    下記にCopyさせて頂きます。
    
    >  dsUserData.Merge(ds, false);
    > この行の実行結果のDataSetのTablesを見てみて下さい。
    ご指摘の通り、Talbesが増えておりました。
    そこで、表示するテーブルを変更した所正しくマージされたデータが表示されました。
    
    ただ、このままだとスキーマ?が変更されていると思うので
    dsUserData.Tables[0].TableName = "UserData";
     でTable名を変更した所、またマージされなくなってしまいました。
    (変更前はMDBから取得したDataSet側のTableNameが「Table」になっていました。
    
    TableName変更後マージしたDataSetのTablesの個数を確認した所
    1個なのでなんらかのマージの処理は行っていると思います。
    
    お手数ですが引き続き、お付き合いください。
    
    また、
    http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfSystemDataDataSetClassMergeTopic2.asp
    によると、
    「Merge メソッドが呼び出されたときは、スキーマが変更されている可能性があるため、
     2 つの DataSet オブジェクトのスキーマが比較されます。」と記載があります。
    
    エクセル側のスキーマとは一体どれになるのでしょうか?
    
    ◆以下getUserDbDataのコード
    
            private bool getUserDbData(string strOlecommand, ref DataSet ds)
            {
                if (!Class.Cls_Sql.getSqlData(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\m\user.mdb;Jet OLEDB:Database Password=????", strOlecommand, ref ds))
                {
                    return false;
                }
                return true;
            }
    
     public static bool getSqlData(string strOleDbConn, string strOlecommand, ref DataSet ds)
            {
                OleDbConnection oleDBcon = null;
                OleDbDataAdapter oleDbAda = null;
    
                try
                {
                    oleDBcon = new OleDbConnection(strOleDbConn.ToString());
                    oleDbAda = new OleDbDataAdapter(strOlecommand, strOleDbConn.ToString());
                    ds = new DataSet();
                    oleDbAda.Fill(ds);
                }
                catch (OleDbException Oex)
                {
                    //ExceptionCheck.run(Oex, true);
                    return false;
                }
                finally
                {
                    //ds.Dispose();
                    oleDbAda.Dispose();
                    oleDBcon.Dispose();
                }
                return true;
            }
記事No.13001 のレス /過去ログ28より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -