如何添加列到.dbf文件
本文关键字:dbf 文件 添加 何添加 | 更新日期: 2023-09-27 18:18:58
我有一个问题是,我不认为表有名称…它只是一个。dbf文件
所以我一直在尝试这个:
public void SQLAlter(string dbffile, string ColumnName )
{
//dbffile is "C:'MAPS'WASHINGTON'TLG_ROADS_L.DBF"
//ColumnName is "State"
if (File.Exists(dbffile))
{
System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection();
conn.ConnectionString = @"DSN=dBase Files";
conn.Open();
System.Data.Odbc.OdbcCommand comm = new System.Data.Odbc.OdbcCommand();
comm.CommandText = "ALTER TABLE " + dbffile + " ADD COLUMN " + ColumnName + " VARCHAR(1024)";
comm.ExecuteNonQuery();
}
}
错误是:
{System.Data.Common基地。dbeexception} = {"ERROR [42S02][Microsoft][ODBC dBASE Driver]找不到表或约束。"}
我认为表名应该是文件名,连接字符串应该指向包含dbf文件的文件夹。
var path = Path.GetDirectoryName(dbffile);
var tableName = Path.GetFileName(dbffile);
// ...
conn.ConnectionSTring = @"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" + path;
comm.CommandText = "ALTER TABLE " + tableName + //...
查看connectionstrings.com: http://connectionstrings.com/dbf-foxpro
这实际上是正确的语法
comm.CommandText = "ALTER TABLE " + dbffile + " ADD COLUMN " + ColumnName + " VARCHAR(1024)";
但是如果你的文件名超过8个字符,它将找不到它。尽管我尝试了一个适当长度的文件名,但"在包含数据的表上不支持操作"。
各种互联网链接似乎表明,必须创建一个新表,并复制所有的字段。
尝试其他提供商。
它在Visual Foxpro提供程序中为我工作conn.ConnectionString = @"Provider=VFPOLEDB.1;数据源=主题。dbf" + @"';扩展属性=dBase IV";
如果你的机器上没有安装驱动程序,你可以在这里得到它:http://www.microsoft.com/en-us/download/details.aspx?id=14839