我可以通过编程确定(OLEDB)超出了哪个列长度吗?
本文关键字:编程 可以通过 OLEDB | 更新日期: 2023-09-27 17:50:46
由于某种原因,我无法打开有关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。oledbeexception未被用户代码处理HResult = -2147217833消息=字段太小,无法接受您尝试添加的数据量。请尝试插入或粘贴更少的数据。Source=Microsoft Office Access Database Engine
与其猜测哪一列有太多数据,不如通过编程确定哪一列有问题。我可以吗?如何?
有关于如何在MSDN中查询底层模式信息的非常详细的解释,从检索数据库模式信息开始。
免责声明:我从来没有尝试过对Access数据库使用这个
在阅读了你上面的评论之后,我很清楚你的Access文件只是把它的设计器视图锁定了。通常情况下,你应该能够通过简单地按住Shift键解锁它们,双击文件并保持按住Shift,直到Access启动并运行。
从那时起,你将有完整的访问表,查询等,以及随之而来的,你的数据库规范。这比动态访问要好得多。