出于某种原因,我无法打开相关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 消息=该字段太小,无法接受您尝试添加的数据量。尝试插入或粘贴较少的数据。 Source = Microsoft Office Access数据库引擎"
如果我能以编程方式确定哪个列是有问题的列,那么不必猜测哪个列有太多数据。我可以吗?怎么样?
答案 0 :(得分:1)
有一个非常详细的解释,说明如何从Retrieving Database Schema Information开始查询MSDN中的基础架构信息。
免责声明:我从未尝试过对Access数据库使用它。
答案 1 :(得分:1)
在阅读完上述评论之后,我很清楚您的Access文件只是锁定了其设计师视图。通常只需按住Shift键,双击该文件并按住Shift键直到Access启动并运行,您就可以解锁它们。
从那时起,您可以完全访问表,查询等,以及您的数据库规范。这比试图动态访问它要好得多。