【发布时间】:2014-12-09 15:45:35
【问题描述】:
我正在使用下面的代码通过C# .Net 中的OleDb 连接连接到Access 数据库
如何知道我硬编码到程序中的表是否确实存在于文件中,以便向用户显示相应的消息?
try
{
var dbSource = "Data Source = " + source;
const string dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;";
using (var con = new OleDbConnection())
{
con.ConnectionString = dbProvider + dbSource;
con.Open();
using (var cmd = new OleDbCommand())
{
cmd.Connection = con;
cmd.CommandText = "SELECT * FROM [Concrete Design Table 1]";
// How do I know the table name is valid? It results in errors when it is not?
// How to prevent it?
using (var dataReader = cmd.ExecuteReader())
{
while (dataReader != null && dataReader.Read())
{
// read the table here
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
【问题讨论】:
-
如果我正确理解您想要的内容,您可以使用
var schema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });获取表格列表。 -
@svinja 感谢 svinja 提供的线索,但您能告诉我名称列表保存在架构中的哪个位置吗?我没找到。
-
代码开始加起来,所以我发布了一个答案。
标签: c# .net oledb datareader oledbconnection