插入.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());
}
}
不是肯定的,但看看你的连接,你正在连接到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命令仍然可以正常工作。