.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 アプリケーションで実行できるかどうかを確認してください。