C# 如何从.NET应用程序更新.dbf文件

C# 如何从.NET应用程序更新.dbf文件,c#,.net,asp.net,dbf,C#,.net,Asp.net,Dbf,我想从.net应用程序更新.dbf文件。 我能够将.dbf文件读入网格,但无法从.net应用程序更新.dbf文件 我使用了以下代码来读取.dbf文件。读书没问题。但是,无法更新.dbf文件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windo

我想从.net应用程序更新.dbf文件。 我能够将.dbf文件读入网格,但无法从.net应用程序更新.dbf文件

我使用了以下代码来读取.dbf文件。读书没问题。但是,无法更新.dbf文件

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Odbc;

namespace DBFwin
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void ConnectToDBF()
    {            
        System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
        oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=D:\databases\;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
        oConn.Open();
        System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();

        //Test.DBF is the dbf file which is located at C:\rd\Setup folder.
        oCmd.CommandText = @"SELECT * FROM C:\rd\Setup\Test.DBF";

        DataTable dt = new DataTable();
        dt.Load(oCmd.ExecuteReader());

        //Adding a row..
        //DataRow dtRow = dt.LoadDataRow();
        DataRow dtRow = dt.NewRow();
        //FIELD1 and FIELD2 are two columns of dbf file.
        dtRow["FIELD1"] = 999;
        dtRow["FIELD2"] = "RA-12";
        dt.BeginLoadData();
        dt.Rows.Add(dtRow);
        dt.EndLoadData();
        //Above code adding a row in the grid, which is fine.
        //How can i update dbf file from this source code???

        oConn.Close();
        dataGridView1.DataSource = dt;
    }

    private void btnClick_Click(object sender, EventArgs e)
    {
        ConnectToDBF();
    }
}
}

注意:我还看到,第三方组件Apollo组件可用于从.NET应用程序读取、添加和编辑.dbf文件的记录。此组件由VistaSoftware.com开发。这不是免费软件。能否请您确认,要更新.dbf文件,我是否必须使用此第三方组件,或者我可以通过.net应用程序执行此操作

我会这样做:

private void ConnectToDBF()
{            
    System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
    oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=D:\databases\;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
    oConn.Open();
    System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();

    // Insert the row
    oCmd.CommandText = @"INSERT INTO C:\rd\Setup\Test.DBF VALUES(999, 'RA-12')";
    oCmd.ExecuteNonQuery();

    // Read the table
    oCmd.CommandText = @"SELECT * FROM C:\rd\Setup\Test.DBF";

    DataTable dt = new DataTable();
    dt.Load(oCmd.ExecuteReader());

    oConn.Close();
    dataGridView1.DataSource = dt;
}

我会这样做:

private void ConnectToDBF()
{            
    System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
    oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=D:\databases\;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
    oConn.Open();
    System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();

    // Insert the row
    oCmd.CommandText = @"INSERT INTO C:\rd\Setup\Test.DBF VALUES(999, 'RA-12')";
    oCmd.ExecuteNonQuery();

    // Read the table
    oCmd.CommandText = @"SELECT * FROM C:\rd\Setup\Test.DBF";

    DataTable dt = new DataTable();
    dt.Load(oCmd.ExecuteReader());

    oConn.Close();
    dataGridView1.DataSource = dt;
}

您没有包含任何代码…如果问题已解决,请接受回答者。您没有包含任何代码…如果问题已解决,请接受回答者。