Не уверен, но, глядя на ваше соединение, вы подключаетесь к корню C: .... плохо ... Это может быть просто вопросом разрешений и невозможностью записи в корневой каталог. '
Я бы предложил создать ваше подключение к некоторой подпапке, даже если это просто
C: \ MyDBFTesting \
После этого посмотрите, действительно ли сработал результат «CREATE TABLE», и вы увидите «test.dbf».
Наконец, поместите ваш executeNonQuery () в try / catch
try
{
command2.ExecuteNonQuery()
}
catch( Exception e )
{
string x = e.Message;
}
поставьте точку останова на улове и войдите в ... посмотрите, какие ДРУГИЕ элементы / сообщения могут быть в объекте исключения "e", чтобы предоставить вам больше возможных ответов.
Видя контекст «.dbt» (который указывает больше текста в свободной форме, а не фиксированных / стандартных типов), я бы изменил ваше создание, чтобы явно идентифицировать CHARACTER емкости фиксированного размера ... что-то вроде
create table Test ( ID C(10), Changed C(10), Tacos C(10) )
C = Символ, а 10 - максимальный размер, допустимый в столбце. Другие типы данных, такие как I = int, D = только дата, T = дата / время, L = логический и т. Д. Это «известные» типы, которые обеспечивают строгую структуру. Текст является произвольной формой, и его содержимое помещается в файл .dbt, но ДОЛЖНА быть соответствующая запись, но в противном случае она не будет отображаться.
Тогда ваша команда вставки все равно будет работать идентично.