c# - 当连接字符串中的路径不存在时如何防止 OLEDB 创建新的 excel 文件

标签 c#

例子:

public static DataTable dTable;

    public bool openDBSheet(string sheet)
    {
        String str= 
            "Provider=Microsoft.ACE.OLEDB.12.0;"
            + @"Data Source=D:\Item1.xlsx;"
            +"Extended Properties='Excel 12.0 XML;HDR=Yes'";

        try
        {
            OleDbConnection conn = new OleDbConnection(str);
            conn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheet + "$]", conn);
            dTable = new DataTable();
            adapter.Fill(dTable);
            conn.Close();
        }
        catch (Exception)
        {
            return false;
        }

        return true;
    }

真正的文件名是“Item.xlsx”,但是当我将路径更改为“D:\Item1.xlsx;”时(不存在)程序创建一个名为“Item1.xlsx”的新空文件。 任何人都可以向我解释为什么以及如何解决它吗?

或者也许还有另一种更好的方法来使用 OLEDB 验证不存在的 excel 文件???

最佳答案

您可以使用 File.Exists()

if (!File.Exists(@"D:\Item1.xlsx"))
  return;

关于c# - 当连接字符串中的路径不存在时如何防止 OLEDB 创建新的 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45058245/

相关文章:

c# - 如何在asp.net核心中的x单元单元测试中模拟AutoMapper IConfigurationProvider

c# - 如何将两个 Entity Framework 调用合并为一个?

c# - 在页面上多次引用单个图像文件是否会影响性能?

c# - 使用 LINQ 将三个列表连接成一个会引发异常

c# - 将重复的列表条目合并为一个并在 C# 中显示数量

c# - 从 iCloud API 获取联系人列表

c# - 订购字典

c# - 在 C# 中拦截窗口移动

javascript - 从根本上来说,C# 和 Javascript 中的 "this"关键字是否相同

c# - 查找数组中单词的最小和最大长度的最短方法