如何使用 OLE DB 提供程序列出 Fox Pro 中表的主键?
使用 C# 并将我的构建切换到 x86 而不是 x64 我能够使用 Fox Pro 的 oledb 提供程序来显示有关表的一些信息:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;
namespace obtainFoxSchema
{
class Program
{
static void Main(string[] args)
{
OleDbConnection connection = new OleDbConnection(
"Provider=VFPOLEDB.1;Data Source=X:\\FREETABLES\\DATA;"
);
connection.Open();
DataTable tables = connection.GetSchema(
System.Data.OleDb.OleDbMetaDataCollectionNames.Tables
);
foreach (System.Data.DataRow rowTables in tables.Rows)
{
Console.Out.WriteLine(rowTables["table_name"].ToString());
DataTable columns = connection.GetSchema(
System.Data.OleDb.OleDbMetaDataCollectionNames.Columns,
new String[] { null, null, rowTables["table_name"].ToString(), null }
);
foreach (System.Data.DataRow rowColumns in columns.Rows)
{
Console.Out.WriteLine(
rowTables["table_name"].ToString() + "." +
rowColumns["column_name"].ToString() + " = " +
rowColumns["data_type"].ToString()
);
}
}
Console.Out.WriteLine("stop");
}
}
}
但是我真的不知道在返回的对象中在哪里查找表之间的主键或外键。
有什么想法可能在哪里?
是的,我在另一个问题中找到了此代码,但我自己使用 Excel 2007 的获取外部数据构建了连接字符串。