Могу ли я программно определить (OLEDB), какая длина столбца превышена?

По какой-то причине я не могу открыть представление Design рассматриваемой таблицы 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"

Вместо того, чтобы угадывать, в каком столбце слишком много данных, было бы неплохо, если бы я мог программно определить, какой столбец является проблематичным. Могу я? Как?

2 ответа

Решение

Существует довольно подробное объяснение того, как запрашивать информацию о базовой схеме в MSDN, начиная с получения информации о схеме базы данных.

Отказ от ответственности: я никогда не пытался использовать это в базе данных Access.

После прочтения ваших комментариев выше мне становится ясно, что в вашем файле Access просто заблокированы дизайнерские представления. Обычно вы можете разблокировать их, просто удерживая Shift, дважды щелкнув по файлу и удерживая Shift, пока Access не запустится.

С этого момента у вас будет полный доступ к таблицам, запросам и тому подобному, а также к вашим спецификациям базы данных. Это будет гораздо лучше, чем пытаться получить к нему динамический доступ.

Другие вопросы по тегам