2

何らかの理由で、問題の MS Access テーブルのデザイン ビューを開くことができません。データは確認できますが、デザイン、特に列の長さは確認できません。

このコードを使用して、上記のテーブルにレコードを挿入しようとすると:

using (var conn = new OleDbConnection(connStr))
{
    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandText = 
            @"INSERT INTO tx_header (tx, site_no, xmlfile, collect_dttm, ccr_user, tx_memo, file_beg, file_end) 
              VALUES(@txval, @siteNum, @xmlfileName, Now(), @ccrUser, @TXMemo, @strfile_beg, @strfile_end)";
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@txval", tx);
        cmd.Parameters.AddWithValue("@siteNum", site_no);
        cmd.Parameters.AddWithValue("@xmlfileName", xmlfile);
        cmd.Parameters.AddWithValue("@ccrUser", ccr_user);
        cmd.Parameters.AddWithValue("@TXMemo", tx_memo);
        cmd.Parameters.AddWithValue("@strfile_beg", file_beg);
        cmd.Parameters.AddWithValue("@strfile_end", file_end);
        conn.Open();
        cmd.ExecuteNonQuery();
    }
}

...私は、" System.Data.OleDb.OleDbException がユーザー コードによって処理されませんでした。 Microsoft Office Access データベース エンジン

データが多すぎる列を推測するのではなく、問題のある列をプログラムで特定できると便利です。できますか?どのように?

4

2 に答える 2

1

上記のコメントを読んだ後、Access ファイルのデザイナー ビューがロックされているだけであることは明らかです。通常は、Shift キーを押しながらファイルをダブルクリックし、Access が起動して実行されるまで Shift キーを押し続けるだけでロックを解除できるはずです。

それ以降は、テーブル、クエリなどに完全にアクセスでき、それに加えてデータベースの仕様にもアクセスできます。これは、動的にアクセスしようとするよりもはるかに優れています。

于 2014-03-18T18:22:26.193 に答える