任何人都可以告訴我如何從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良好的漁獲!我會補充一點。 –
而且?這是否解決了你的問題?如果確實如此,請將其作爲答案發布。 –