插入.dbf文件时出现问题

本文关键字:问题 dbf 文件 插入 | 更新日期: 2023-09-27 18:27:29

此代码不会在dbf文件中保存任何数据。这里怎么了?这是带有建议更改的代码。非常感谢。

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:'TEMP;Extended Properties=dBase IV"; 
        using (OleDbConnection connection = new OleDbConnection(connectionString)) 
        using (OleDbCommand command = connection.CreateCommand()) 
        { 
            connection.Open(); 
            command.CommandText = @"CREATE TABLE TEST (Id Text, Changed Text, Tacos Text)"; 
            command.ExecuteNonQuery(); 
        }
        using (OleDbConnection connection2 = new OleDbConnection(connectionString))
        using (OleDbCommand command2 = connection2.CreateCommand())
        {
            connection2.Open();
            command2.CommandText = @"Insert into TEST (Id, Changed, Tacos) VALUES ('One','Two','Three')";
            try
            {
                command2.ExecuteNonQuery();
            }
            catch (Exception ee) 
            {
                MessageBox.Show(ee.ToString());
            }
        }

插入.dbf文件时出现问题

不是肯定的,但看看你的连接,你正在连接到C:…的根。。。。令人不快的这可能只是权限问题,不能在根目录下写入

我建议创建到某个子文件夹的连接,即使它只是

C: ''MyDBF测试''

之后,看看"CREATETABLE"结果是否真的有效,你可以看到"test.dbf".

最后,将executeOnQuery()放入try/catch 中

try
{
   command2.ExecuteNonQuery()
}
catch( Exception e )
{
   string x = e.Message;
}

在接球处设置一个破发点,然后进入。。。查看"e"异常对象中的OTHER元素/消息,为您提供更多可能的答案。

看到".dbt"的上下文(它表示更自由的文本,而不是固定/标准类型),我会更改您的创建,以明确标识固定大小容量的CHARACTER。。。类似的东西

create table Test ( ID C(10), Changed C(10), Tacos C(10) )

C=字符,10是列中允许的最大大小。其他数据类型,如I=int、D=仅日期、T=日期/时间、L=逻辑等。这些都是提供严格结构的"已知"类型。TEXT是自由形式的,其内容进入.dbt文件,但应该有相应的记录,但在其他情况下不会显示。

然后,您的insert命令仍然可以正常工作。