任何人都可以告诉我如何从C#中获取Visual FoxPro数据库中的表的列表?从数据库获取表的列表
我试过使用GetSchema
,但返回的信息似乎只是计数(而不是准确的计数)。
这是我有...
string connSrc = @"Provider=VFPOLEDB.1;Data Source=myvfpdb.dbc";
using (var cmdSrc = new OleDbCommand())
using (var dbconnSrc = new OleDbConnection(connSrc))
{
dbconnSrc.Open();
DataTable schema = dbconnSrc.GetSchema();
}
我想可能有一些方法,我可以直接打开DBC文件并对其运行一个SELECT但问题是数据库所在的路径到连接字符串。我找不到可以提取架构信息的OleDb命令。
编辑:
我发现,工作的方式,但它似乎有点笨重。任何人都知道更好的方法?
string connSrc = @"Provider=VFPOLEDB.1;Data Source=myvfpdb.dbc";
using (var conn = new OleDbConnection(connSrc))
dbc = conn.DataSource;
string path = Path.GetDirectoryName(dbc);
string database = Path.GetFileName(dbc);
using (var conn = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=" + path))
{
conn.Open();
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM " + database;
DbDataReader reader = cmd.ExecuteReader();
}
}
编辑:
随着添马舰的建议改变了查询语句这个...
cmd.CommandText = $"SELECT ObjectName FROM {database} WHERE ObjectType = \"Table\"";
可以肯定WHERE子句添加到查询:WHERE OBJECTTYPE = “表” –
@ TamarE.Granor良好的渔获!我会补充一点。 –
而且?这是否解决了你的问题?如果确实如此,请将其作为答案发布。 –