Access テーブルから .csv ファイルを作成するプログラムを作成しようとしています。これを行う方法がわかりません.csvファイルからAccessテーブルを作成するという、逆の方法を調査中に見つけたものはすべてです。
これまでのところ、ユーザーがアクセス ディレクトリ (.mdb) へのデータ パスを選択できるようにする Windows フォーム アプリケーションを作成し、[移動] ボタンを押すと、ディレクトリ内のテーブルのリストがリスト ボックスに表示されます。 .
次に行う必要があるのは、方法がわかりませんが、ユーザーがテーブルの 1 つを選択できるようにすることです。これにより、選択したテーブルから .csv ファイルが作成されます。これまでの私のコードは次のとおりです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Common;
namespace TranslatorHelper
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnPath_Click(object sender, EventArgs e)
{
string dialogText = "";
// Show the dialog and get result.
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK) // Test result.
{
dialogText = openFileDialog1.ToString();
dialogText = dialogText.Replace("System.Windows.Forms.OpenFileDialog: Title: , FileName: ", "");
txtDataPath.Text = dialogText;
}
}
private void btnGetTables_Click(object sender, EventArgs e)
{
// Microsoft Access provider factory
DbProviderFactory factory =
DbProviderFactories.GetFactory("System.Data.OleDb");
DataTable userTables = null;
using (DbConnection connection = factory.CreateConnection())
{
connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+txtDataPath.Text;
// We only want user tables, not system tables
string[] restrictions = new string[4];
restrictions[3] = "Table";
connection.Open();
// Get list of user tables
userTables = connection.GetSchema("Tables", restrictions);
}
// Add list of table names to listBox
for (int i = 0; i < userTables.Rows.Count; i++)
lstTables.Items.Add(userTables.Rows[i][2].ToString());
}
private void lstTables_SelectedIndexChanged(object sender, EventArgs e)
{
}
できる限りのアドバイスを提供してください。何でも感謝します。私は本当にここで立ち往生しています。