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 未被用户代码处理 HResult=-2147217833 消息=该字段太小,无法接受您尝试添加的数据量。尝试插入或粘贴更少的数据。来源= Microsoft Office Access 数据库引擎"

不必猜测哪一列有太多数据,如果我能以编程方式确定哪一列是有问题的那会很好。我可以吗?如何?

4

2 回答 2

1

关于如何在 MSDN 中查询底层架构信息,有一个非常详细的解释,从Retrieving Database Schema Information开始。

免责声明:我从未尝试对 Access 数据库使用它。

于 2014-03-18T18:07:27.450 回答
1

在阅读了您上面的评论后,我很清楚您的 Access 文件只是将其设计器视图锁定了。通常,您应该能够通过简单地按住 Shift 键、双击文件并按住 Shift 键直到 Access 启动并运行来解锁它们。

从那时起,您将可以完全访问表、查询等,以及您的数据库规范。这比尝试动态访问要好得多。

于 2014-03-18T18:22:26.193 回答