public class DbfReader {
private string _path;
private OleDbConnection
_connection;
public DbfReader(string dbfPath)
{
_path = dbfPath;
CheckFile();
}
public OleDbDataReader GetReader()
{
try
{
_connection.Open();
OleDbCommand command = new OleDbCommand("select * from [" + _path +
‘]‘, _connection);
return
command.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
return null;
throw;
}
}
public void Close()
{
_connection.Close();
}
public void CheckFile()
{
_connection = new OleDbConnection("provider=vfpoledb.1;data
source=" + _path);
try
{
_connection.Open();
}
catch
{
throw new EMException(1103);
}
finally
{
_connection.Close();
}
} }
public class DbfWriter {
private string _path;
public string TableName;
private string _createCommand;
private OleDbConnection _connection;
private OleDbCommand _command;
public DbfWriter(string dbfPath,
string createCommand) {
_path =
dbfPath;
_createCommand = createCommand; }
public void Open()
{
int index =
_path.LastIndexOf(‘\\‘);
TableName =
_path.Substring(index + 1);
_connection =
new OleDbConnection("provider=vfpoledb.1;data source=" + _path.Substring(0,
index));
_command = new OleDbCommand("create table [" + TableName + "] " +
_createCommand, _connection);
try
{
_connection.Open();
_command.ExecuteNonQuery();
}
catch
{
_connection.Close();
throw; }
}
public void Close()
{
_connection.Close(); }
public void AppendData(string
command) {
_command.CommandText = command;
_command.ExecuteNonQuery(); }
}